我试图断开客户端,然后重新连接它.
我可以使用断开客户端与服务器端的连接 socket.disconnect();
但我无法再次连接它,有没有办法做到这一点?
问题是我在客户端有一个特定的处理connect callback,如果我尝试在断开连接事件后连接客户端,它永远不会触发回调,我不明白为什么.
这是一个明显的例子:
客户
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);
Run Code Online (Sandbox Code Playgroud)
服务器
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');
});
});
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您正在使用Socket.io 1.0,请尝试使用io套接字上的管理器来执行disconnect()和操作reconnect()
请参阅Socket.io上的示例 - 客户端断开后手动重新连接
| 归档时间: |
|
| 查看次数: |
19428 次 |
| 最近记录: |