HTML5 WebSocket
- API 用于創(chuàng)建 WebSocket 對象旨指。
var Socket = new WebSocket(url, [protocol] );
以上代碼中的第一個參數(shù) url, 指定連接的 URL。第二個參數(shù) protocol 是可選的喳整,指定了可接受的子協(xié)議谆构。
2.WebSocket 對象的屬性
(假設(shè)Socket是變量)
Socket.readyState:
只讀屬性 readyState 表示連接狀態(tài),可以是以下值:
0 - 表示連接尚未建立框都。
1 - 表示連接已建立搬素,可以進(jìn)行通信。
2 - 表示連接正在進(jìn)行關(guān)閉魏保。
3 - 表示連接已經(jīng)關(guān)閉或者連接不能打開熬尺。
Socket.bufferedAmount:
只讀屬性 bufferedAmount 已被 send() 放入正在隊列中等待傳輸,但是還沒有發(fā)出的 UTF-8 文本字節(jié)數(shù)谓罗。
3.WebSocket 事件
Socket.onopen---連接建立時觸發(fā)
Socket.onmessage---客戶端接收服務(wù)端數(shù)據(jù)時觸發(fā)
Socket.onerror---通信發(fā)生錯誤時觸發(fā)
Socket.onclose---連接關(guān)閉時觸發(fā)
4.WebSocket 方法
Socket.send()---使用連接發(fā)送數(shù)據(jù)
Socket.close()---關(guān)閉連接
5.代碼示例粱哼,只有html5客戶端的代碼,服務(wù)器端的沒有寫:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
<script type="text/javascript">
function WebSocketTest()
{
if ("WebSocket" in window)
{
alert("您的瀏覽器支持 WebSocket!");
// 打開一個 web socket(建立)
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()//連接后觸發(fā)
{
// Web Socket 已連接上檩咱,使用 send() 方法發(fā)送數(shù)據(jù)
ws.send("發(fā)送數(shù)據(jù)");
alert("數(shù)據(jù)發(fā)送中...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert("數(shù)據(jù)已接收...");
};
ws.onclose = function()
{
// 關(guān)閉 websocket
alert("連接已關(guān)閉...");
};
}
else
{
// 瀏覽器不支持 WebSocket
alert("您的瀏覽器不支持 WebSocket!");
}
}
</script>
</head>
<body>
<div id="sse">
<a href="javascript:WebSocketTest()">運行 WebSocket</a>
</div>
</body>
</html>