【问题标题】:Socket.IO Invalid frame header after http Reqesthttp请求后的Socket.IO帧头无效
【发布时间】:2019-04-23 03:13:20
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: javascript node.js websocket socket.io


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2019-04-10
      • 2017-10-30
      • 2017-09-17
      • 2014-12-11
      相关资源
      最近更新 更多