我正在C中實現一個WebSocket服務器,並且想知道文本/二進制幀指示器(操作碼1和2)的用途是什麼。他們爲什麼在那裏?最後,在這兩種情況下,有效載荷都包含比特。當有一個使用websocket的協議時,我知道數據有什麼期望。是因爲當它是文本消息時,我可以確定有效載荷只包含UTF-8有效數據嗎?Websocket:什麼是文本/二進制幀指示器的目的
0
A
回答
1
我會開始回答,指出WebSockets通常是用一個Javascript客戶端(即瀏覽器)實現的。
當您使用C時,可能會以不同的方式使用不同的操作碼,但使用Javascript時,此差異控制事件中的數據類型(Blob
與String
)。
正如您在問題中指出的那樣,字符串始終是有效的UTF-8字節流,而blob
則不是。
這會影響一些數據傳輸方案(例如需要UTF-8有效流的JSON解析)。
顯然,在C,這個操作碼,可以以不同的方式使用,但它會更好地使用操作碼以同樣的方式作爲一個潛在的JavaScript客戶端。
P.S.
有一些Websocket C庫和框架(我是facil.io的作者)。
除非這是一個研究項目,否則我會考慮使用其中一個已建立的框架/庫。
相關問題
- 1. jetty(WebSocket)禁用二進制幀聚合
- 2. 二進制文件的EOF是什麼?
- 3. 二進制文件中的熵 - 目的是什麼?
- 4. 什麼是二進制文件?
- 5. Silverlight二進制文件.ni.dlls是什麼?
- 6. 什麼是二進制文字?
- 7. 這是什麼樣的二進制到文本編碼?
- 8. 什麼是二進制文件\ _PublishedWebsites目錄下TFS的目的建立
- 9. 什麼是解包的「二進制串」
- 10. 二進制數據的十六進制編碼的目的是什麼?
- 11. Chrome 16 websocket二進制
- 12. Websocket base64,二進制類型
- 13. 源文件與二進制文件:提供兩者的目的是什麼?
- 14. 什麼是VB6本地化支持二進制文件?
- 15. 迦太基中的「 - 不使用二進制文件」的目的是什麼
- 16. 這是什麼樣的二進制數字表示形式?
- 17. PHP中的二進制文件的前綴是什麼?
- 18. 用C++編寫文本/二進制文件最優雅的方式是什麼?
- 19. 什麼是9位二進制到十進制的轉換?
- 20. 什麼是二進制數據?
- 21. 什麼是二進制編碼PDF?
- 22. 什麼是二進制空字符?
- 23. 什麼是二進制字符集?
- 24. \ x00在二進制文件中的含義是什麼?
- 25. 爲什麼git認爲我的文件是二進制
- 26. 爲什麼git索引文件是二進制的?
- 27. 編譯後的二進制文件是什麼意思?
- 28. 幀指針的優點是什麼?
- 29. 如何檢索二進制文件的二進制版本號
- 30. 爲什麼git應用二進制文件的補丁而不是創建二進制文件?