我正在尝试断开客户端的连接,然后再重新连接。
我能够使用socket.disconnect();
从服务器端断开客户端连接。
但是我无法重新连接它,有没有一种方法可以实现?
问题是我在客户端的connect回调函数
中有特定的处理,如果我在断开事件后尝试连接客户端,它永远不会触发回调函数,我不明白为什么。
下面是一个清晰的示例:
客户端
var Socket = io.connect('http://127.0.0.1:3000');
function bind_socket(Socket) {
Socket.on('connect', function() {
console.log('Socket connected !');
});
Socket.on('event', function(data) {
console.log('Receive event: '+data);
});
Socket.on('disconnect', function() {
console.log('Socket disconnected !');
var Socket = io.connect('http://127.0.0.1:3000'); //Doesn't fire the "connect" callback
bind_socket(Socket);
Socket.emit('event', 3);
});
}
bind_socket(Socket);
Socket.emit('event', 1);
服务器
var io = require('socket.io').listen(3000);
io.on('connection', function(socket) {
console.log('socket '+socket.id+' connect');
socket.on('event', function(data) {
console.log('Receive Event: '+data);
socket.disconnect();
this.emit('event', 2);
});
socket.on('disconnect', function() {
console.log('socket '+this.id+' disconnect');
});
});