如何检测套接字 IO 中的重新连接事件

rus*_*eer 7 node.js socket.io

每当客户端连接时,我都会使用 socket.id 为该客户端分配一个 id,并将其保留在服务器中以供将来参考。我现在遇到的问题是断开/重新连接。我什至不确定如何模拟这种情况,因为如果我重新加载客户端页面,它在技术上会创建一个新客户端并使用不同的 ID 连接到服务器。如果我手动断开并连接客户端,则客户端将再次具有不同的 ID (socket.id)。

我使用 socket.on('reconnect',function(){...}) 在客户端和服务器上设置了 'reconnect' 事件,但考虑到我上面的尝试,它似乎从未被调用过。

那么你将如何模拟这个场景呢?那么检测这个新客户端是否与断开连接的客户端是同一个客户端的最佳方法是什么?

Vik*_*war 7

客户端有一个重新连接事件,您可以在其中发送到服务器并找到重新连接的客户端

socket.on('reconnect', function () {
    console.log('you have been reconnected');
    // where username is a global variable for the client
    socket.emit('user-reconnected', username);
});
Run Code Online (Sandbox Code Playgroud)

在服务器上你可以得到

socket.on('user-reconnected', function (username) {
     console.log(username + ' just reconnected');
});
Run Code Online (Sandbox Code Playgroud)