断开连接后我无法连接到 Socket.io 个房间
I can not connect to Socket.io room after disconnect
第一次连接时,用户成功加入房间。但是,断开连接后,房间重新加入失败。当我在房间断开后尝试连接时,此代码 returns 房间为 undefined
。
关于如何处理 Socket.io 重新连接有什么好主意吗?
服务器:
io.on('connection', function onConnection(socket){
socket.on('adduser', function(data){
socket.room=data.room ;
socket.join(socket.room)
})
})
socket.on('drawing', function(points) {
console.log("on room"+ socket.room)//logs undefined on reconnect
io.to(socket.room).emit('drawing', points);
console.log("broadcasting")
});
断开连接时:
socket.on('disconnect', function(){
console.log(socket.room)
socket.leave(socket.room);
})
客户:
var socket = io.connect(':3000');
socket.on('connect', function(){
console.log("emit socket")
socket.emit('adduser', data);
})
因此,由于 Socket.io 默认行为
,当用户断开连接时,连接似乎没有关闭
这可以通过 forcing new connection on loading 解决
所以在客户端替换:
var socket=io.connect(':3000')
与
var socket=io.connect(':3000', {'force new connection': false})
第一次连接时,用户成功加入房间。但是,断开连接后,房间重新加入失败。当我在房间断开后尝试连接时,此代码 returns 房间为 undefined
。
关于如何处理 Socket.io 重新连接有什么好主意吗?
服务器:
io.on('connection', function onConnection(socket){
socket.on('adduser', function(data){
socket.room=data.room ;
socket.join(socket.room)
})
})
socket.on('drawing', function(points) {
console.log("on room"+ socket.room)//logs undefined on reconnect
io.to(socket.room).emit('drawing', points);
console.log("broadcasting")
});
断开连接时:
socket.on('disconnect', function(){
console.log(socket.room)
socket.leave(socket.room);
})
客户:
var socket = io.connect(':3000');
socket.on('connect', function(){
console.log("emit socket")
socket.emit('adduser', data);
})
因此,由于 Socket.io 默认行为
,当用户断开连接时,连接似乎没有关闭这可以通过 forcing new connection on loading 解决 所以在客户端替换:
var socket=io.connect(':3000')
与
var socket=io.connect(':3000', {'force new connection': false})