WebSocket物件特性和方法

2022-08-02 16:03:15 字數 1499 閱讀 3607

send方法用於在websocket連線建立後,客戶端向服務端傳送訊息。可分為傳送兩種訊息,一種是普通文字資訊,一種是二進位制資料。需注意的是,send方法必須在連線建立以後才能使用,也就是在onopen裡使用才不會出錯。

傳送普通資訊

傳送二進位制資料

下面是乙個綜合示例:

ws = websocket("ws:",);

/*open事件觸發表明協議握手成功,websocket以及準備好接收和傳送資料

*/ws.onopen = function(e)

/*message訊息在客戶端接收到訊息時觸發

*/ws.onmessage = function(e)else

ws.close();

}

close方法用於關閉連線,它可以不帶引數表示直接關閉,也可以帶上兩個引數(code,reason)向服務端提交關閉連線的原因:

1.  ws.close()

2.  ws.close(1000,"close normally")

在學習了websocket的方法後,接下來學習一下websocket提供的物件特性,這些特性提供了關於websocket物件的更多資訊:readystate、bufferedcount

和protocol。英文稍好的話其實由字面就可知道這三個物件分別對應著websocket的什麼特性。下面一一介紹一下:

特性常量

取值狀態

websocket.connecting

0連線正在進行中,但還未建立

websocket.open

1連線已建立,訊息可以開始傳遞

websocket.closing

2連線正在進行關閉

websocket.closed

3連線已關閉

下面是示例:

var ws = new websocket("ws:",);

if(ws.readystate == websocket.connecting)

ws.onopen = function(e)

}

當客戶端向服務端傳送大量資料時,瀏覽器會先將資料快取到瀏覽器的傳送佇列裡,然後逐段地向伺服器傳送,bufferedamount這個特性就是告訴客戶端現在佇列裡還有多少已經快取了但沒傳送的資料。示例如下:

var limit = 10240;

var ws = new websocket("ws:",);

/*open事件觸發表明協議握手成功,websocket以及準備好接收和傳送資料

*/ws.onopen = function(e)

ws.send(a);

}},10);

setinterval(function(),500)

}

protocol特性包含在開啟握手期間websocket伺服器選擇的協議名,換句話說,protocol特性告訴你特定websocket上使用的協議。

websocket注入service物件的方法

在websocket中無法使用spring的註解注入bean物件,可能是它底層實現的時候不受spring管理,跟junit乙個道理在junit測試裡面也是無法使用注入bean方式注入進來,但是使用springboot開發的話,就可以了,springboot應該是管理這個websocket可以直接注入...

C 類和物件特性

類是使用者自定義的型別,表明某一類物件的共性和特徵。類是一種抽象型別,物件是具體的。類的定義 class 類名 類成員的訪問屬性 public protected private 預設為private 其中,公共資料成員 public 在類的外部可直接訪問。物件的宣告和訪問 class bird v...

類和物件的特性

1 在物件導向的程式中,除主函式外,其他函式基本上都是出現在類中,只有通過類才能呼叫類中的函式。2 物件導向的4個主要特點 抽象 封裝 繼承 多型。3 基於物件設計和物件導向程式設計統稱物件導向程式設計.4 物件是構成系統的基本單位。乙個物件有兩個特徵 一是靜態特徵,比如班級的學生人數 所在教室以及...