2014-03-24 231 views
0

我在ASP.NET 4.5站點上使用Signalr v2.0.2和JS客戶端(WebSocket傳輸) IIS-8(啓用WebSockets)。經過負載測試(使用Selenium)後,我可以在任何瀏覽器的控制檯中看到下一個錯誤(*是我們的域名)。信號:WebSocket連接到'wss:// ***':在WebSocket握手期間出錯:意外的響應代碼:502

[20:23:46 GMT + 0400(俄羅斯標準時間)] SignalR:連接到端點的WebSocket「WSS:///連接傳輸=的WebSockets &連接... 6GkCoU%3D &狀態= 1 & connectionData =% 5B%7B%22name%22%3A%22chat%22%7D%5D & tid = 1'。項目-FK0ZHh5_zUo_6I0Z725jUg2.js?ver = 7.627:54 WebSocket連接到'wss:/// signalr/connect?transport = webSockets & connection ... 6GkCoU%3D & State = 1 & connectionData =%5B%7B%22name%22% 3A%22chat%22%7D%5D & tid = 1'失敗:在WebSocket握手期間發生錯誤:意外的響應代碼:502

即使在完成負載測試後,我總是會收到此錯誤。我從來沒有看到這個錯誤,我不知道這個原因。它只能解決應用程序重啓。

回答

1

檢查了這一點:http://www.infoq.com/articles/Web-Sockets-Proxy-Servers

這是幾乎可以肯定是由於沒有使用HTTPS(SSL)來。普通http上的Websocket容易受中間代理(通常是透明的)的影響,在http層中斷連接。

這在蜂窩網絡或辦公室網絡中很常見,它可能會使用多個無線連接與代理之間的連接傳播http請求。

避免這種情況的唯一方法是始終使用SSL - 這爲websocket提供了最佳工作機會。

相關問題