摘要:概述本文為協議的第六章,本文翻譯的主要內容為消息發送與接收相關內容。在這一幀中的應用數據被定義為消息的數據。接下來的數據幀必須是屬于一條新的消息。像第節中說的那樣,服務端在收到客戶端的數據幀時必須去除掩碼。
概述
本文為 WebSocket 協議的第六章,本文翻譯的主要內容為 WebSocket 消息發送與接收相關內容。
發送與接收消息(協議正文) 6.1 發送數據為了通過 WebSocket 連接發送一條 WebSocket 消息,終端必須遵循以下幾個步驟:
終端必須保證 WebSocket 連接處于 OPEN 狀態(見第 4.1 節和第 4.2.2 節)。如果 WebSocket 連接的任意一端的狀態發生了改變,終端必須中止以下步驟。
終端必須將數據按照第 5.2 節定義的 WebSocket 幀進行封裝。如果需要發送的數據過大或者在終端希望開始發消息時,如果數據在整體性這一點上不可用,那么終端可能會選擇通過在第 5.4 節中定義的一系列幀來進行封裝。
包含數據的第一幀操作碼(幀操作碼)必須根據第 5.2 節中的內容設置的合適的值,以便接收者將數據解析為文本或者二進制數據。
最后一個包含數據的幀的 FIN ( FIN 幀)字段必須和第 5.2 節中定義的一樣設置為 1 。
如果數據被發送到了客戶端,數據幀必須和第 5.3 節中定義的一樣添加掩碼。
如果在 WebsSocket 連接中有協商擴展(第 9 章),在這些擴展中的定義和注意事項也許要額外考慮。
被格式化的幀必須通過底層的網絡連接進行傳輸。
6.2 接收數據為了接收 WebSocket 數據,終端需要監聽底層網絡連接。輸入的數據必須通過第 5.2 節定義的 WebSocket 幀進行解析。如果收到了一個控制幀(第 5.5 節),那么這個幀必須如 5.5 節中定義的方式進行處理。如果收到的是一個數據幀,那么終端必須注意 5.2 節中的定義在操作碼(幀操作碼)中的數據類型。在這一幀中的“應用數據”被定義為消息的數據。如果幀中包含未分片的數據(第 5.4 節),那么就認為:一條 WebSocket 消息的數據和類型被收到了。如果幀是分片數據的一部分,那么隨后的幀包含的“應用數據”連起來就是數據的格式。當通過 FIN 字段(FIN幀)表示的最后一個片段被收到時,我們可以說:一條 WebSocket 消息的數據(由片段組裝起來的“應用數據”數據組成)和類型(注意分片消息的第一幀)已經被收到了。接下來的數據幀必須是屬于一條新的 WebSocket 消息。
擴展(第 9 章)可能改變數據如何理解的方式,具體包括消息的內容邊界。擴展,除了在“應用數據”之前添加“擴展數據”之外,也可以修改“應用數據”(例如壓縮它)。
像第 5.3 節中說的那樣,服務端在收到客戶端的數據幀時必須去除掩碼。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/101912.html
摘要:概述經過半年的搗鼓,終于將協議全篇翻譯完成。現在將所有章節全部整理到一篇文章中,方便大家閱讀。如果大家想看具體的翻譯文檔,可以去我的中查看。大家有相關類型的需要,建議大家可以嘗試下。 概述 經過半年的搗鼓,終于將 WebSocket 協議(RFC6455)全篇翻譯完成。現在將所有章節全部整理到一篇文章中,方便大家閱讀。如果大家想看具體的翻譯文檔,可以去我的GitHub中查看。 具體章節...
摘要:允許接收和轉發消息。一個等待接收消息的程序是一個消費者。發送者會先連接到發送一條消息,然后退出。注意這里的是要和之前的名稱一致。翻譯日期另因為想入門第一次想著翻譯,第一次然后希望多多提出不足。 gitBook https://joursion.gitbooks.io/... Title: RabbitMQ tutorials ---- Hello World (Javascript) ...
摘要:用實現簡單協議從瀏覽器說起瀏覽器提供的非常簡潔。創建連接連接建立時的回調收到消息時的回調連接出錯時的回調連接終止時的回調發送消息告訴我們也就是說,在創建對象時,瀏覽器嘗試與服務端建立連接發送請求建立個服務端一旦收到數據,就會觸發。 用 Node 實現簡單 WebSocket 協議 從瀏覽器 WebSocket API 說起 瀏覽器提供的 WebSocket API 非常簡潔。 let...
時間:2018年04月11日星期三 說明:本文部分內容均來自慕課網。@慕課網:https://www.imooc.com 教學源碼:https://github.com/zccodere/s... 學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 什么是Netty 高性能、事件驅動、異步非阻塞的IO Java開源框架 基于NIO的客戶...
摘要:概述本文為協議的第五章,本文翻譯的主要內容為傳輸的數據相關內容。注意無論協議是否使用了,幀都需要添加掩碼。服務端收到沒有添加掩碼的數據幀以后,必須立即關閉連接。服務端禁止在發送數據幀給客戶端時添加掩碼。基礎數據幀協議通過進行了正式的定義。 概述 本文為WebSocket協議的第五章,本文翻譯的主要內容為WebSocket傳輸的數據相關內容。 有興趣了解該文檔之前幾張內容的同學可以見: ...
閱讀 3249·2023-04-25 20:35
閱讀 3612·2019-08-30 15:54
閱讀 1991·2019-08-30 15:43
閱讀 2181·2019-08-29 15:14
閱讀 1888·2019-08-29 11:17
閱讀 3377·2019-08-26 13:36
閱讀 693·2019-08-26 10:15
閱讀 2832·2019-08-23 15:41