2012-03-17 42 views
1

我正在製作一個websocket的C服務器:D 實際上有一次我確實連接成功,但在此之後, 這個onOpen不再觸發...並告訴我我想在客戶端檢查「Sec-WebSocket-Accept」

Error during WebSocket handshake: Sec-WebSocket-Accept mismatch 

所以現在我需要檢查哪些客戶端HTML需要特別的Sec-WebSocket-Accept

有沒有一種方法可以讓我在JavaScript客戶端檢查Sec-WebSocket-Accept場? 我應該檢查什麼值?

回答

2

仲丁基的WebSocket-Accept報頭預期由網頁套接字服務器的初始開口握手期間發送不能從JavaScript訪問(在瀏覽器中)。

然而,您可以在握手成功後查看Chrome的開發者控制檯中的完整開啓握手,

值必須由服務器基於客戶端(和一個神奇的字符串)發送的二段WebSocket的密鑰來計算。您可以在http://tools.ietf.org/html/rfc6455

+0

中詳細瞭解,真的非常感謝您的回覆!它對我非常有幫助,現在我完成了C服務器!雖然它只能握手^^;現在我正在學習數據框架,看起來比握手更困難;;; – nathan 2012-03-18 07:47:55

+0

在Chrome控制檯中查看握手和(特別是)消息讀取將非常有用。你能告訴我在哪裏找他們嗎?我在控制檯選項卡中看不到任何內容;我應該看看不同的標籤? – simonc 2012-03-18 09:57:46

+0

您可以從WS開幕握手查看數據,像這樣(在Chrome): F12 - >網絡選項卡 - >重新加載頁面 - >的WebSocket子標籤(底部) - >點擊路徑(左窗格)。 您不能(據我所知)在Chrome內握手之後自動「竊聽」WS消息。 可能有一個Wireshark解剖器可以允許。 – oberstet 2012-03-18 10:45:35