在 websockets 上 Express socket.io 错误 404
Posted
技术标签:
【中文标题】在 websockets 上 Express socket.io 错误 404【英文标题】:Express socket.io erroring 404 on websockets 【发布时间】:2015-01-28 11:47:24 【问题描述】:我在我的 express.js 应用程序中使用 socket.io,但是在尝试通过 websockets 传输时,它不断从我们的 UAT 服务器返回 404。
值得注意的是,在我的本地服务器上一切正常,所以我认为这是 UAT 上的某种配置。
这是实际的错误:
WebSocket connection to 'ws://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=websocket&sid=eUtgUXweLDzSblrjAAE8' failed: Error during WebSocket handshake: Unexpected response code: 400
-- 示例请求--
请求网址:ws://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=websocket&sid=AssKCIfT3vTVwmHcAAE4
- 失败
请求网址:http://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=polling&t=1422444487679-3&sid=AssKCIfT3vTVwmHcAAE4
- 成功
我不太擅长 websockets,所以我真的不知道从哪里开始寻找,以前有没有人遇到过这个问题,或者可以指出可能导致此问题的起始方向?
【问题讨论】:
我猜是因为代理 【参考方案1】:我在尝试访问负载均衡器后面的 websocket 时遇到了同样的问题。您的 UAT 环境是否使用任何负载平衡?我使用的是 AWS ELB,并且不得不将平衡器从 HTTP 更改为 TCP,因为 Web 套接字在 TCP 上通信,HTTP 侦听器无法路由请求。
【讨论】:
以上是关于在 websockets 上 Express socket.io 错误 404的主要内容,如果未能解决你的问题,请参考以下文章
端口 34037 已在使用 Heroku + Nodejs + Express + WebSockets
使用 Apollo Express、Nginx 和 docker-compose 保护 websocket
如何在 express 的获取请求中执行 websocket 连接事件?