中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WebSocket API怎么使用

發布時間:2022-03-03 16:49:33 來源:億速云 閱讀:287 作者:iii 欄目:web開發

這篇文章主要介紹“WebSocket API怎么使用”,在日常操作中,相信很多人在WebSocket API怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”WebSocket API怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

 屬性

WebSocket有兩個屬性,分別是readyState和bufferedAmount,其中bufferedAmount是作為連接緩沖用的,而WebSocket服務的readyState一共有以下4種狀態。

? CONNECTING(值為數字0)。表示正在連接,尚未連接成功,這里有一個網絡通信的握手過程。

注意,任何一個連接開始的時候,其狀態都必須是CONNECTING=0。如果ready-State一直是CONNECTING狀態,就會報出INVALID_STATE_ERR異常。

? OPEN(值為數字1)。表示連接已經成功,可以通信了。這里的連接是長連接、持久連接。

? CLOSING(值為數字2)。表示連接準備被斷開,握手將被取消。

? CLOSED(值為數字3)。表示連接已經斷開,可以從服務器端斷開,也可以從客戶端斷開。

URL

URL屬性都是一樣的,哪怕是訪問同源網站(這里的URL地址必須是絕對地址)。例如:

var Socket = new WebSocket('ws://www.test.com/');

哪怕本身這個發起WebSocket連接的地址就是www.test.com,也必須以ws://www.test.com為連接目標,否則就是錯誤的。

以下三種形式都是錯誤的:

var Socket = new WebSocket('/');

var Socket = new WebSocket('C:\www.test.com');

var Socket = new WebSocket('http://www.test.com');

以下兩種形式都是允許的、正確的:

var Socket = new WebSocket('ws://www.test.com/updates');

var Socket = new WebSocket('ws://www.test.com/updates:8080');

事件

具體的事件說明如下,其中send()方法基于成功的連接傳送數據,其參數必須是字符串(string)格式。

事件句柄 事件類型 解釋

onopen open 連接打開

onmessage message 用于接受從服務器傳來的信息

onerror error 當出現連接中的各種錯誤時,用于容錯處理和排查

onclose close 連接關閉或斷開

send send 基于成功的連接傳送數據

這里需要注意,bufferedAmount屬性作為還沒有發送到網絡中的最后一個待執行的事件輪詢任務,必須返回正在隊列中的(準備發送出去的)基于UTF-8格式文本的字節數量。(這包括在當前任務的執行中發送的文本,不論客戶端是否能夠異步傳輸文本。)

如果連接是關閉的,這個屬性的值將僅增加每次使用send方法帶來的數字變化(一旦連接關閉,該數字不能被初始化為0)。

在下面這個簡單的例子中,bufferedAmount屬性用于確保能夠保持在每50ms一次更新的頻率(如果網絡能保持這個速率),如果這個速率太快,那么采用其他能夠有保證的速率也可以:

var Socket = new WebSocket('ws://www.test.com:12010/updates');

Socket.onopen = function(){

setInterval(function(){

if(Socket.bufferedAmount == 0)

Socket.send(getUpdateData());

}, 50);

};

到此,關于“WebSocket API怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁河县| 彭山县| 商都县| 台州市| 尉犁县| 镇江市| 乐东| 博乐市| 乐昌市| 金坛市| 达尔| 广东省| 洪洞县| 大英县| 万荣县| 鄂尔多斯市| 象山县| 社会| 柞水县| 南阳市| 乌什县| 耒阳市| 博野县| 禹州市| 永平县| 延川县| 阜阳市| 惠安县| 汉沽区| 收藏| 志丹县| 云安县| 新密市| 龙川县| 桂平市| 镇巴县| 盈江县| 长兴县| 乌拉特中旗| 鄯善县| 玉林市|