【发布时间】:2015-06-04 13:13:12
【问题描述】:
错误Error during WebSocket handshake: Unexpected response code: 400的可能原因是什么?
该应用程序托管在 ubuntu 上,并使用 npm mup 包进行部署。我将捆绑的 ssl pem 文件包含在 mup.json 中。
还有什么我需要在服务器上配置的吗?
【问题讨论】:
错误Error during WebSocket handshake: Unexpected response code: 400的可能原因是什么?
该应用程序托管在 ubuntu 上,并使用 npm mup 包进行部署。我将捆绑的 ssl pem 文件包含在 mup.json 中。
还有什么我需要在服务器上配置的吗?
【问题讨论】:
这可能是由以下三个原因之一引起的:
某些 ISP 可能使用不支持 websocket 的代理。这在 3G 网络上更为明显
如果您的应用已崩溃。 Meteor 尝试连接到服务器,但由于它不在线而无法连接。
如果 Nginx 未配置为使用 WebSocket,并且您的 MUP 实例位于 WebSocket 后面,也会发生这种情况。
因此,如果您的应用程序按预期工作(可能只是需要很长时间才能连接)并且在开发控制台中出现此错误,则可能是由于代理服务器造成的。为避免这种情况,请尝试在您的服务器上安装 SSL (https://)。这样 ISP 或代理就无法更改您应用的连接。
【讨论】:
DISABLE_WEBSOCKETS=t)或使用其他负载均衡器,如 nginx。
我通过酒店 WiFi 连接时遇到此错误。问题是您总是通过他们的代理连接到互联网。
我的解决方案是将我的手机用作 Wifi 热点。我有 Android 6.0.1,您可以通过以下方式访问菜单:
Settings > More > Tethering & portable hotspot > Set up Wi-Fi hotspot (and then enable 'Portable Wi-Fi hotspot')
【讨论】: