我在我現有的服務器中實現了一個websocket服務器。握手很好,然後我甚至可以發送第一條消息,客戶端瀏覽器收到它。但任何後續的消息斷開websocket。在鉻我得到以下錯誤。Websocket - Chrome抱怨掩碼位集
failed: A server must not mask any frames that it sends to the client.
我的幀被這樣
Len = erlang:size(Msg),
if
Len < 126 ->
Message = [<<1:1, 0:3,2:4,0:1,Len:7>>,Msg];
Len < 65536 ->
Message = [<<1:1, 0:3,2:4,0:1,126:7,Len:16>>,Msg];
true ->
Message = [<<1:1, 0:3,2:4,0:1,127:7,Len:64>>,Msg]
end,
現在一個樣本數據來創建要被髮送看起來像這樣 < < 130,46,60,115,110,112,95,105,110,102,111,32,97,118,95,112,111,116,61,34 ,49,49,34,32,104,97,110,100,115,95,112,101,114,95,104,111,117,114,61,34,48,46,50,48,34,32,47,62 >>
正如你在上面的代碼中看到的,我的掩碼位總是設置爲0,但我不明白爲什麼同樣的消息適用於t他第一次,然後我再次發送相同的消息,它抱怨掩碼位設置。
有人知道爲什麼嗎? 謝謝
如果Chrome對設置掩碼或特殊位等內容抱怨,那麼這些數據通常不會傳送給網絡檢查員。你可能會想直接跳到WireShark之類的東西(我發現Charles已經足夠了,而且使用起來也不那麼複雜)。 –
感謝您的快速回復,並對我遲到的回覆感到抱歉。我已經檢查了wireshark上的流量(鉻不是很有用)。現在我的第一條消息是941字節和第二個251字節。對於第一條消息,我可以在wireshark中看到1個websocket節,但在第二條消息中,我得到3個websocket消息(我將附上截圖)。首先說有效載荷長度2,第二121和第三99.並在信息中說,它的延續信息。 – rameez82
我已經上傳了這裏的圖片 - http://i44.tinypic.com/16hw1nd.png – rameez82