在websockets上运行socket.io错误404

我在我的express.js应用程序中使用socket.io,但它试图通过websockets传输时,从我们的UAT服务器不断返回404。

值得注意的是,在我的本地服务器上一切正常,所以我认为这是在UAT上的某种configuration。

这是实际的错误: 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

– 示例请求 –

请求urlws://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=websocket&sid=AssKCIfT3vTVwmHcAAE4 – 失败

请求urlhttp://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=polling&t=1422444487679-3&sid=AssKCIfT3vTVwmHcAAE4 : http://timesheet.hw.s2.hwuat.com/socket.io/?EIO=2&transport=polling&t=1422444487679-3&sid=AssKCIfT3vTVwmHcAAE4 – 成功

我对websockets并不太熟悉,所以我不知道从哪里开始寻找,有没有人遇到过这个问题,或者可以指出我可能导致这个问题的起始方向?

尝试访问负载均衡器后面的websockets时遇到同样的问题。 您的UAT环境是否使用任何负载平衡? 我正在使用AWS ELB,并且必须将我的平衡器从HTTP更改为TCP,因为Web套接字在TCP上进行通信,HTTP侦听器无法路由请求。