日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)

發(fā)布時(shí)間:2024/4/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

本文為 WebSocket 協(xié)議的第六章,本文翻譯的主要內(nèi)容為 WebSocket 消息發(fā)送與接收相關(guān)內(nèi)容。

發(fā)送與接收消息(協(xié)議正文)

6.1 發(fā)送數(shù)據(jù)

為了通過(guò) WebSocket 連接發(fā)送一條 WebSocket 消息,終端必須遵循以下幾個(gè)步驟:

  • 終端必須保證 WebSocket 連接處于 OPEN 狀態(tài)(見(jiàn)第 4.1 節(jié)和第 4.2.2 節(jié))。如果 WebSocket 連接的任意一端的狀態(tài)發(fā)生了改變,終端必須中止以下步驟。
  • 終端必須將數(shù)據(jù)按照第 5.2 節(jié)定義的 WebSocket 幀進(jìn)行封裝。如果需要發(fā)送的數(shù)據(jù)過(guò)大或者在終端希望開(kāi)始發(fā)消息時(shí),如果數(shù)據(jù)在整體性這一點(diǎn)上不可用,那么終端可能會(huì)選擇通過(guò)在第 5.4 節(jié)中定義的一系列幀來(lái)進(jìn)行封裝。
  • 包含數(shù)據(jù)的第一幀操作碼(幀操作碼)必須根據(jù)第 5.2 節(jié)中的內(nèi)容設(shè)置的合適的值,以便接收者將數(shù)據(jù)解析為文本或者二進(jìn)制數(shù)據(jù)。
  • 最后一個(gè)包含數(shù)據(jù)的幀的 FIN ( FIN 幀)字段必須和第 5.2 節(jié)中定義的一樣設(shè)置為 1 。
  • 如果數(shù)據(jù)被發(fā)送到了客戶(hù)端,數(shù)據(jù)幀必須和第 5.3 節(jié)中定義的一樣添加掩碼。
  • 如果在 WebsSocket 連接中有協(xié)商擴(kuò)展(第 9 章),在這些擴(kuò)展中的定義和注意事項(xiàng)也許要額外考慮。
  • 被格式化的幀必須通過(guò)底層的網(wǎng)絡(luò)連接進(jìn)行傳輸。
  • 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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。