【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)
概述
本文為 WebSocket 協(xié)議的第六章,本文翻譯的主要內(nèi)容為 WebSocket 消息發(fā)送與接收相關(guān)內(nèi)容。
發(fā)送與接收消息(協(xié)議正文)
6.1 發(fā)送數(shù)據(jù)
為了通過(guò) WebSocket 連接發(fā)送一條 WebSocket 消息,終端必須遵循以下幾個(gè)步驟:
6.2 接收數(shù)據(jù)
為了接收 WebSocket 數(shù)據(jù),終端需要監(jiān)聽(tīng)底層網(wǎng)絡(luò)連接。輸入的數(shù)據(jù)必須通過(guò)第 5.2 節(jié)定義的 WebSocket 幀進(jìn)行解析。如果收到了一個(gè)控制幀(第 5.5 節(jié)),那么這個(gè)幀必須如 5.5 節(jié)中定義的方式進(jìn)行處理。如果收到的是一個(gè)數(shù)據(jù)幀,那么終端必須注意 5.2 節(jié)中的定義在操作碼(幀操作碼)中的數(shù)據(jù)類(lèi)型。在這一幀中的“應(yīng)用數(shù)據(jù)”被定義為消息的數(shù)據(jù)。如果幀中包含未分片的數(shù)據(jù)(第 5.4 節(jié)),那么就認(rèn)為:一條 WebSocket 消息的數(shù)據(jù)和類(lèi)型被收到了。如果幀是分片數(shù)據(jù)的一部分,那么隨后的幀包含的“應(yīng)用數(shù)據(jù)”連起來(lái)就是數(shù)據(jù)的格式。當(dāng)通過(guò) FIN 字段(FIN幀)表示的最后一個(gè)片段被收到時(shí),我們可以說(shuō):一條 WebSocket 消息的數(shù)據(jù)(由片段組裝起來(lái)的“應(yīng)用數(shù)據(jù)”數(shù)據(jù)組成)和類(lèi)型(注意分片消息的第一幀)已經(jīng)被收到了。接下來(lái)的數(shù)據(jù)幀必須是屬于一條新的 WebSocket 消息。
擴(kuò)展(第 9 章)可能改變數(shù)據(jù)如何理解的方式,具體包括消息的內(nèi)容邊界。擴(kuò)展,除了在“應(yīng)用數(shù)據(jù)”之前添加“擴(kuò)展數(shù)據(jù)”之外,也可以修改“應(yīng)用數(shù)據(jù)”(例如壓縮它)。
像第 5.3 節(jié)中說(shuō)的那樣,服務(wù)端在收到客戶(hù)端的數(shù)據(jù)幀時(shí)必須去除掩碼。
總結(jié)
以上是生活随笔為你收集整理的【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Angular中修改第三方组件的样式 -
- 下一篇: Zabbix3.X-Zabbix _Ag