我已经为聊天应用程序实现了socket io(版本:0.10)。除了一个问题,它的工作非常顺利。 假设两个用户正在聊天,现在其中一个用户正在丢失网络。获得网络连接后,我如何重新加入以前与之聊天的用户?
答案 0 :(得分:0)
我认为你可以这样做:
当两个用户首次连接并加入,并且生成了新房间时,您可以向他们发送房间的名称。然后在下一次连接时传递该房间名称
代码可能如下所示:
<强> server.js:强>
io.on('connection', function(socket) {
if (socket.query.roomName) {
var roomName = socket.query.roomName;
//join to this room
} else {
//here you're generating a room name and join socket to this room
}
socket.emit('room_name', {roomName: roomName});
});
<强> client.js:强>
socket.on('room_name', function(data) {
socket.socket.options.query = 'roomName=' + data.roomName;
});
希望这有帮助。
修改强>
您还可以尝试在连接到服务器时传递max reconnection attempts
和reconnection limit
选项:
var socket = io.connect('/', {
'reconnection limit': 30000, //max pause between reconnection attemps
'max reconnection attempts': Infinity //reconnect eternally
});
这适用于socket.io 0.9,不确定1.0