錯誤的可能原因是什麼Error during WebSocket handshake: Unexpected response code: 400
?流星:在WebSocket握手期間出錯:意外的響應代碼:400
該應用程序託管在Ubuntu和使用NPM mup
包部署。我在mup.json中包含了捆綁的ssl pem文件。
我還需要在服務器上配置什麼?
錯誤的可能原因是什麼Error during WebSocket handshake: Unexpected response code: 400
?流星:在WebSocket握手期間出錯:意外的響應代碼:400
該應用程序託管在Ubuntu和使用NPM mup
包部署。我在mup.json中包含了捆綁的ssl pem文件。
我還需要在服務器上配置什麼?
這可以通過三個原因造成的:
某些ISP可能使用不支持WebSockets的代理。這是更明顯的3G網絡
如果您的應用程序崩潰。流星試圖連接到服務器,因爲它不在線,所以無法連接。
如果Nginx的未配置爲使用WebSockets,和您的MUP實例坐在後面的WebSocket這也可能發生。
所以,如果您的應用程序工作正常(也許只是需要多一點的時間太長獲得連接)&在開發控制檯這個錯誤很可能是由於代理服務器。爲了避免這種情況,請嘗試在您的服務器上安裝SSL(https://)。這樣,ISP或代理無法更改您的應用程序的連接。
我在通過酒店WiFi連接時遇到了此錯誤。問題在於你總是通過代理連接到互聯網。
我的解決方案是使用我的手機作爲Wifi熱點。我的Android 6.0.1,您可以通過進入菜單:
Settings > More > Tethering & portable hotspot > Set up Wi-Fi hotspot (and then enable 'Portable Wi-Fi hotspot')
我會考慮第3步謝謝Akshat。你會碰巧知道是否有必要使用aws負載平衡器來在實例上使用ssl?我已經使用證書設置了負載平衡器,現在正在安裝nginx並嘗試爲我的應用配置.congif文件 – meteorBuzz
@meteorBuzz是的,這就是原因。 AWS負載平衡器不支持Websockets。我希望你提到這一點。您可能必須考慮禁用websockets(環境變量DISABLE_WEBSOCKETS = t')或使用其他內容來加載平衡器,例如nginx。 – Akshat
我已經刪除了平衡器,並打算在實例上安裝nginx並按照https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/789/37/certificate安裝我的comodo證書-installation-nginx – meteorBuzz