2011-12-09 60 views
3

什麼是MozWebSocket firefox二進制消息客戶端 - >服務器數據包結構?mozwebsocket數據包結構

發送ArrayBuffer0x01 0x00 0x01)。真的發送0x88 0x82 0xE7 0xEB 0x20 0x30 0xE4 0x03。前兩個字節不會在不同的會話中更改(ID大小?)。 這裏是例如鉻二進制消息分組結構 -

0x82 - 編號

0xYY 1bit的 - 被掩蔽? 7位 - 數據長度

0xZZ oxZZ oxZZ oxZZ - 4字節掩碼

數據(屏蔽)


注意:Firefox目前僅支持發送字符串。

似乎有沒有辦法使用Firefox發送二進制數據?

+2

如果你控制客戶端和服務器,你可以考慮base64編碼你的數據。這將把你的二進制數據轉換成一個字符串,允許你從Firefox發送它。 – simonc

回答

2

只有Chrome當前支持發送二進制對象類型。 Firefox尚不支持發送二進制類型。但是,Mozilla正在開發the issue,所以很快就會有Firefox支持。

2

我相信數據包結構與Chrome(或任何其他瀏覽器)相同。查看latest spec的數據組幀部分,表明這是連接關閉消息:

0x88:前導8顯示這是消息的最後一個片段。結尾8是連接關閉幀的操作碼。
0x82:msb顯示消息包含掩碼。剩下的7位給出了發送數據的長度 - 在這種情況下是2個字節。
0xE7 0xEB 0x20 0x30:用於解碼消息的掩碼。
0xE4×03:發送的消息 - (0xE4^0xE7)(×03 ^將0xEB)== 0xE7 0x0C我覺得]

假設你不關閉連接客戶端,你可以檢查是否Firefox的版本支持發送二進制消息。