2014-03-30 216 views
1

我正在本地運行我的ASP.NET Web API應用程序與xsockets沒有任何問題。當我將項目發佈到Azure時,它不會連接。我啓用了Azure的websockets並調整了客戶端上的xsockets urlXSockets.net蔚藍網站

from: conn = new XSockets.WebSocket(「ws:// localhost:50838/api/Chat」);

發送至: conn = new XSockets.WebSocket(「ws://.azurewebsites.net/api/Chat」);

有什麼建議嗎?

阿諾德·

回答

1

XSockets通過在默認情況下的子協議「XSocketsNET」和由於某種原因天青在響應過濾該路程。它在仿真中工作正常,但在Azure上,子協議被刪除。這會導致錯誤的Chrome,因爲Chrome會檢查的子協議給予以下錯誤:

WebSocket connection to 'ws://xmvc.azurewebsites.net/Home' failed: Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received 

它可以在不執行此檢查其他瀏覽器的罰款。我試過IE10和Firefox this sample site running XSockets on a Azure WebSite

在我看來,Chrome正在做正確的事情,Azure有一個錯誤。

編輯: 請注意Azure WebSites限制WebSocket連接的事實! 免費上門:5個連接 共享網站:35個連接 標準網站:350個連接

1

根據微軟使用的WebSockets在WSS/HTTPS會做的伎倆來,我只是做了測試,結果還是一樣。

如果您在握手期間通過服務器傳遞響應事件,最有可能將「不必要」的子協議標頭從響應事件中刪除。

因此,使用Windows Azure時不能依賴SubProtocol,因爲它看起來像?