WebSocket
WebSocket是一種比HTTP協議更加高效的網絡傳輸協議,它有效地減少了HTTP頭中的冗余信息和網絡延時,能夠提供客戶端-服務器和服務器-客戶端的雙通道實時通信,同時具有很好的安全機制。基于WebSocket的URL通常以WS://...開頭,類似于HTTPS,安全的WebSocket連接URL通常以WSS://...開頭。要實現WebSocket通信,需要客戶端瀏覽器支持WebSocket,服務器端也必須支持WebSocket。
WebSocket還具有廣播功能,當有多個監聽者連接時,廣播服務器發送的消息都可被接收到。
2.瀏覽器支持檢測
function loadDemo()
{
if (window.WebSocket)
{
document.getElementById("support").innerHTML = "HTML5 WebSocket is supported in your browser.";
} else
{
document.getElementById("support").innerHTML = "HTML5 WebSocket is not supported in your browser.";
}
}
3.WebSocket對象
WebSocket在DOM中是window對象的子對象,它具有:
•WebSocket(url)構造函數。
•readyState。只讀屬性,其值可以是CONNECTING(0),OPEN(1),CLOSED(3)。
•boolean send(in DOMString data)和void close()兩個方法,分別用于發送消息和關閉WebSocket連接
•onopen, onmessage, 和onclosee三個事件屬性,分別對open, message和close三個WebSocket事件。
3.使用WebSocket的步驟
//建立連接
url = "ws://localhost:8080/echo";
w = new WebSocket(url);
//事件監聽
w.onopen = function() {
log("open"); w.send("thank you for accepting this websocket request");
}
w.onmessage = function(e) {
log(e.data);
}
w.onclose = function(e) {
log("closed");
}
//發送消息
document.getElementById("sendButton").onclick = function() {
w.send(document.getElementById("inputMessage").value);
}
//關閉連接。一般情況下不關閉,以保持實時通信
w.close();
posted on 2013-03-19 12:54 何云隆 閱讀(1018) 評論(0) 編輯 收藏 所屬分類: HTML5