meteor:在WebSocket握手期间出错:意外的响应代码:400

什么可能是错误的可能原因Error during WebSocket handshake: Unexpected response code: 400

该应用程序在Ubuntu上托pipe,并使用npm mup包进行部署。 我在mup.json中包含了捆绑的ssl pem文件。

还有什么我需要在服务器上configuration?

这可能是由三个原因之一造成的:

  1. 一些ISP可能使用不支持websocket的代理。 这在3Gnetworking上更为明显

  2. 如果你的应用程序崩溃。 meteor试图连接到服务器,不能因为它不在线。

  3. 如果Nginx没有configuration为使用WebSocket,并且您的MUP实例位于WebSocket的后面,也会发生这种情况。

因此,如果您的应用程序按预期工作(可能只是需要太长的时间才能连接),并在开发控制台中出现此错误,这可能是由于代理服务器。 为了避免这种情况,请尝试在服务器上安装SSL(https://)。 这样ISP或代理不能改变你的应用程序的连接。

当我通过酒店WiFi连接时出现此错误。 问题是,你总是通过他们的代理连接到互联网。

我的解决scheme是使用我的手机作为Wifi热点。 我有Android 6.0.1,您可以通过以下方式访问菜单:

Settings > More > Tethering & portable hotspot > Set up Wi-Fi hotspot (and then enable 'Portable Wi-Fi hotspot')