帧头无效

时间:2017-04-20 17:55:01

标签: javascript websocket socket.io

我正在尝试制作实时应用程序。我使用NodeJS作为服务器和Socket.IO来实现我的实时功能。

问题是我收到错误:

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

我尝试了很多东西,例如将https更改为http,降低Socket.IO版本等,但没有任何方法可以帮助我。请帮助我解决问题的原因,以便我可以查明我的应用程序中的错误。我不想去寻求其他COMET协议。

6 个答案:

答案 0 :(得分:4)

好吧,这是我的错误,只是我用socket.io初始化服务器两次导致问题

答案 1 :(得分:2)

我跑

时解决了同样的问题
npm install socket.io --save

基本上,我忘了在项目中安装socket。

答案 2 :(得分:0)

在服务器和客户端上使用相同版本的socket.iosocket.io-client

答案 3 :(得分:0)

使用 socket.io-client 时,我目前遇到相同的问题。我已经按照以下说明解决了我的问题。

您可以尝试将opts.transports设置为仅在客户端中使用websocket:

io.connect(url, { transports: ['websocket'] }); // default is ['polling', 'websocket']

参考:https://github.com/socketio/socket.io-client/issues/1097#issuecomment-301301030

答案 4 :(得分:0)

将套接字io更改为使用其独立服务器,并且对我有用。最初将其添加到express创建的服务器中。 这段代码解决了这个问题。

const io = require("socket.io")();

//listening socket io on different port
io.listen(4000);

答案 5 :(得分:0)

对我来说,答案是我连接的是版本 2 的客户端,而服务器运行的是版本 4。作为 per the docs,我必须在服务器上启用 allowEIO3