断开连接后如何在套接字io中加入以前的客户端ID

时间:2014-06-03 05:32:40

标签: node.js socket.io

我已经为聊天应用程序实现了socket io(版本:0.10)。除了一个问题,它的工作非常顺利。 假设两个用户正在聊天,现在其中一个用户正在丢失网络。获得网络连接后,我如何重新加入以前与之聊天的用户?

1 个答案:

答案 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 attemptsreconnection 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