91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

天长市| 滨州市| 汉川市| 景宁| 四会市| 石渠县| 盈江县| 吉木萨尔县| 衢州市| 文化| 台东市| 白水县| 上思县| 吴川市| 和顺县| 临江市| 盘锦市| 姚安县| 屏南县| 凤庆县| 宁化县| 民乐县| 泰来县| 富源县| 海兴县| 肥城市| 华蓥市| 聂荣县| 六盘水市| 格尔木市| 林周县| 拜城县| 嵩明县| 兴义市| 济阳县| 瑞金市| 辉南县| 类乌齐县| 海丰县| 白城市| 丰镇市|