我使用 node.js 和 socket.io 已经有一段时间了。
我遇到了一个奇怪的问题。过去,我主要使用长端口 - 3000、4001、8888 等来运行我的节点和套接字服务器。我没有遇到任何问题。
但是,当我将端口移动到 80 时,出现以下错误 -
WebSocket 握手期间出错:“连接”标头值不是“升级”
只有在 Chrome 上运行页面时才会出现此错误。我在亚马逊 AWS 上托管这个应用程序。它在 localhost 上运行良好,但在端口 80 的生产中出现错误。
我认为这与我的代码无关,因为它适用于开发和非 80 端口。
我还观察到套接字通信归结为 xhr-polling 和 json-polling 。在非 80 端口上,websockets 工作正常。
我不确定是什么问题。我在其他浏览器上没有遇到同样的错误,但也没有发生套接字连接。
我没有使用 nginx 或任何其他负载均衡器。