socket.io自动断开套接字

时间:2016-12-06 09:12:06

标签: node.js ubuntu socket.io

当我在电子邮件中运行socket.io时,我在开发者控制台中不断收到此错误。

engine.io-client:socket probe transport "websocket" failed because of error: transport closed +6s

当我建立它时,套接字总是立即断开连接。我的客户端甚至没有得到socket.emit我会在建立连接后立即执行,直到一两分钟后。

客户端和服务器的版本与socket.io相同。

服务器:

io.on('connection', function(socket){
  socket.emit('got it','');
  console.log('Socket connection established');
});

客户端:

var socket = require('socket.io-client')('http://localhost:3000');
console.log(socket);
socket.on('got it', function(a){
  console.log('connected');
  console.log(socket);
})

这不是完整的代码,但除了一些不应影响连接的其他听众之外,没有任何其他与websockets交互的内容。

服务器未显示任何问题。它告诉我每次有人连接,但当我尝试以任何方式发射任何东西时,收件人都不会马上得到它。我看到"发出包含ack id x"每次我点击发送一个发光的按钮,但服务器都没有看到它。这个问题是间歇性的,好像我稍等一下服务器和客户端就可以连接,但是一段时间后它们仍会随机断开连接。

2 个答案:

答案 0 :(得分:1)

我通过添加

来解决这个问题
{transports: ['websocket'], upgrade: false}

作为实例化客户端时的选项。

来自https://stackoverflow.com/a/28240802/4726265

的回答

答案 1 :(得分:0)

更新socket.io库到最新版本

npm i socket.io@latest --save