当我在电子邮件中运行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"每次我点击发送一个发光的按钮,但服务器都没有看到它。这个问题是间歇性的,好像我稍等一下服务器和客户端就可以连接,但是一段时间后它们仍会随机断开连接。
答案 0 :(得分:1)
我通过添加
来解决这个问题{transports: ['websocket'], upgrade: false}
作为实例化客户端时的选项。
的回答答案 1 :(得分:0)
更新socket.io库到最新版本
npm i socket.io@latest --save