Socket.IO http请求后无效的帧头

时间:2018-11-20 16:07:30

标签: javascript node.js websocket socket.io

我有一个nodejs Express Rest API,我想添加websocket支持。 我在API部分使用了this样板,并添加了this库和socket.io以在同一项目中使用websocket(我不确定是否重要)。

在没有Rest API的情况下,我的websockets可以正常工作,但是一旦我向我的API发出http请求,则与websocket的连接就会失败,并出现以下错误:

  

与'ws:// localhost:3000 / socket.io /?EIO = 3&transport = websocket'的WebSocket连接失败:无效的帧头

虽然已经建立的连接仍然有效。 在我重新启动服务器之前,该问题一直存在。

我发现了很多导致此错误的可能原因,但没有一个真正帮助了我。

编辑: 这就是我连接到网络套接字的方式。

const rooms = io.connect(
    'http://localhost:3000/rooms',
    { transports: ['websocket'] }
);

1 个答案:

答案 0 :(得分:0)

我通过将堆栈切换到nestjs解决了这个问题。 问题可能是因为websocket和rest api都在同一端口上运行