停止socket.io重新连接
简单场景:停止socket.io重新连接,socket.io,Socket.io,简单场景: 客户端使用socket.io(socket=io.connect(…))连接到服务器 服务器崩溃 客户端尝试重新连接 用户告诉客户端断开连接(socket.disconnect()) 服务器启动 客户端重新连接 似乎一旦socket.io开始尝试重新连接,就无法再停止。我希望第4步能阻止第6步的发生,但事实并非如此。我需要调用什么呢?我想你需要的是套接字。io客户端不重新连接已设置属性重新连接为假 我创建了一个小服务器(server.js)来测试这一点: var io = requi
socket=io.connect(…)
)连接到服务器socket.disconnect()
)似乎一旦socket.io开始尝试重新连接,就无法再停止。我希望第4步能阻止第6步的发生,但事实并非如此。我需要调用什么呢?我想你需要的是
套接字。io
客户端
不重新连接
已设置属性重新连接
为假
我创建了一个小服务器(server.js
)来测试这一点:
var io = require('socket.io').listen(8888);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
然后我创建了这个test.js
来测试它是否没有重新连接
var client = require('socket.io-client'),
socket = client.connect('http://localhost:8888', {
'reconnect': false
});
socket.on('connect', function () {
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
});
要使test.js
正常工作,您需要从npm
发布npm安装socket.io客户端
或将socket.io客户端
(dev-依赖项
添加到包.json
当我在运行
test.js
时停止server.js
时,test.js
将立即返回,我相信这是您想要的结果。当我将重新连接
设置为true
时,客户端将尝试重新连接到服务器,这不是所需的行为您可能希望自己处理重新连接
// Disables the automatic reconnection
var socket = io.connect('http://server.com', {
reconnection: false
});
// Reconnects on disconnection
socket.on('disconnect', function(){
socket.connect(callback);
});
注意:旧版本使用了
重新连接
而不是重新连接
在新的socket.io 1.1.x中,您可以执行以下操作:
var manager = io.Manager('http://localhost:9823', { autoConnect: false });
以下是。请尝试以下代码:
self.socket?.manager?.reconnects = false
您只需调用socket.disconnect(),它就会停止尝试重新连接。这对我来说非常好,不过,它在完全停止之前又尝试了一次 socket.io客户端“:“2.2.0”
此.socket.io.重新连接尝试(0);
但我希望它重新连接-直到我明确告诉它断开连接,然后它应该停止尝试。好的。我认为你应该自己编写逻辑。它不应该那么难。我过去自己编写了一些类似的逻辑,将继续重试=>感谢你的努力!你是对的,没有那么难。仍然认为它是正确的但是,socket.io中有一个bug。;)似乎当前该选项已更改为“重新连接:false”感谢您提供此代码片段,它可能会提供一些有限的、即时的帮助。a通过说明为什么这是一个很好的问题解决方案,并将使其对将来有其他类似问题的读者更有用。请请回答添加一些解释,包括您所做的假设。该博客的链接无效。请在您的回答中添加一些解释,以便其他人可以从中学习