日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


WebSocket的基本使用

 

第一部分 介紹

HTTP的缺點在于通信只能由客戶端發起,如果服務器有連續的狀態變化,客戶端要獲知就非常的麻煩,只能夠使用輪訓的方法,很消耗服務器資源。

WebSocket很好的解決了HTTP的這個缺點,它的特點是服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,屬于服務器推送技術的一種。

特點有 :

  • 數據格式輕量,性能開銷小,通信高校。
  • 可以發送文本或二進制數據。
  • 沒有同源限制,客戶端可以與任意服務器通訊。
  • 協議標識是ws,如果加密就是wss,服務器網址就是url。
  • 默認端口也是80和443,握手階段采用HTTP協議,能通過各種HTTP代理服務器。
ws://example.com:80/some/path

第二部分 客戶端示例

var ws = new WebSocket("wss://echo.websocket.org");ws.onopen = function(evt) {   console.log("Connection open ...");   ws.send("Hello WebSockets!");};ws.onmessage = function(evt) {  console.log( "Received Message: " + evt.data);  ws.close();};ws.onclose = function(evt) {  console.log("Connection closed.");};

第三部分 客戶端API

 

  1. WebSocket構造函數var ws = new WebSocket('ws://localhost:8080');

2.WebSocket.readyState 返回示例對象的當前狀態,有四種

CONNECTING:值為0,表示正在連接。
OPEN:值為1,表示連接成功,可以通信了。
CLOSING:值為2,表示連接正在關閉。
CLOSED:值為3,表示連接已經關閉,或者打開連接失敗。

3.WebSocket.onopen 實例對象的onopen屬性,用于指定連接成功后的回調函數

ws.onopen = function () {  ws.send('Hello Server!');}

WebSocket.onclose 實例對象的onclose屬性,用于指定連接關閉后的回調函數

ws.onclose = function(event) {  var code = event.code;  var reason = event.reason;  var wasClean = event.wasClean;  // handle close event};ws.addEventListener("close", function(event) {  var code = event.code;  var reason = event.reason;  var wasClean = event.wasClean;  // handle close event});

5.WebSocket.onmessage 實例對象的onmessage屬性,用于指定收到服務器數據后的回調函數

注意,服務器數據可能是文本也可能是二進制,要不同處理

ws.onmessage = function(event){  if(typeof event.data === String) {    console.log("Received data string");  }  if(event.data instanceof ArrayBuffer){    var buffer = event.data;    console.log("Received arraybuffer");  }}

6.WebSocket.send() 實例對象的send方法用于向服務器發送數據

ws.send('your message');

7.WebSocket.bufferedAmount 實例對象的bufferedAmount屬性,表示還有多少字節的二進制數據沒有發送出去,常用語判斷發送是否結束

var data = new ArrayBuffer(10000000);socket.send(data);if (socket.bufferedAmount === 0) {  // 發送完畢} else {  // 發送還沒結束}

8.WebSocket.onerror 實例對象onerror屬性,用于指定報錯時的回調函數

socket.onerror = function(event) {  // handle error event};socket.addEventListener("error", function(event) {  // handle error event});

分享到:
標簽:WebSocket
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定