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

标签 javascript node.js websocket socket.io

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

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

WebSocket connection to 'ws://localhost:3000/socket.io/?EIO=3&transport=websocket' failed: Invalid frame header

已经建立的连接仍然有效。 这个问题一直存在,直到我重新启动我的服务器。

我发现这个错误有很多不同的可能原因,但没有一个真正对我有帮助。

编辑: 这就是我连接到 websockets 的方式。

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

最佳答案

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

关于javascript - http请求后的Socket.IO帧头无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53397018/

相关文章:

javascript - 为什么此代码会警告三个未定义的值?

javascript - Node.js:如何将全局变量传递到通过 require() 插入的文件中?

javascript - 在 url 路径中使用通配符的 Node.js 和 Websocket

node.js - 使用 socket.io 中的对象

node.js - 同时播放音频

javascript - 在没有服务器的情况下从文件输入中检索图像数据

c# - 我为什么可以将 IWebDriver 转换为 IJavaScriptExecutor?

用于创建叠加层的 Javascript、html 和 css

node.js - 将 SSL 应用于 IONIC Apps 或 Angular Web

eclipse - Nodejs 无法与 Intellij Idea 一起使用