WebSocket報文協(xié)議

客戶端發(fā)送的報文:

??? 第一個字節(jié):
????????? 第 1 位(1位):0表示報文還未結(jié)束, 1表示報文結(jié)束。
????????? 第 2--4 位(3位): 保留字段,擴(kuò)展自己的協(xié)議。
????????? 第 5--8 位(4位): 報文類型, 1為文本, 2為二進(jìn)制? 8為斷開鏈接
??????????????????????????????????? 9為ping, 10為pong。

?? 第二個字節(jié):
????????? 第 1 位(1位):1 表示需要掩碼操作,0 表示不需要。 這里是寫死的 1
????????? 第 2--8 位(7位): 報文長度。 小于 126 表示報文長度。 等于 126,后面 2 個字節(jié)表示報文長度。
???????????????????????????????????? 等于 127, 后面 8 個字節(jié)表示報文長度。

? 接下來四個字節(jié):
????????? 表示4個掩碼。

? 剩余字節(jié):
??????? 真正的報文。

? 說明:
????? 1 tcp 接收到的數(shù)據(jù)大小 可能為 2 + 4 + 報文大小,或者 2 + 2 + 4 + 報文大小,
???????? 或者 2 + 8 + 4 + 報文大小。
??
????? 2? 報文的每一個字節(jié)需要與對應(yīng)的掩碼異或運算。 第一個字節(jié)與第一個掩碼,第二個字節(jié)與第二個
????????? 掩碼..... 第五個字節(jié)與第一個掩碼,以此類推。



服務(wù)端發(fā)送的報文:

???? 第一個字節(jié):
????????? 第 1 位(1位):0表示報文還未結(jié)束, 1表示報文結(jié)束。
????????? 第 2--4 位(3位): 保留字段,擴(kuò)展自己的協(xié)議。
????????? 第 5--8 位(4位): 報文類型, 1為文本, 2為二進(jìn)制 。。。。。

????? 第二個字節(jié):
?????????? 第 1 位(1位):1 表示需要掩碼操作,0 表示不需要。 這里是寫死的 0
?????????? 第 2--8 位(7位): 報文長度。 小于 126 表示報文長度。 等于 126,后面 2 個字節(jié)表示報文長度。
???????????????????????????????????? 等于 127, 后面 8 個字節(jié)表示報文長度。


?????? 剩余字節(jié):
???????????? 真正的報文。

說明:
???? 1 tcp 接收到的數(shù)據(jù)大小 可能為 2 +? 報文大小,或者 2 + 2 + 報文大小,或者 2 + 8 + 報文大小。
???? 2? 服務(wù)端發(fā)送的報文是真實的報文。


參考:
???? https://blog.csdn.net/qwq1503/article/details/103864108?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-103864108.nonecase&utm_term=websocket%E4%B8%AD%E6%8E%A9%E7%A0%81

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容