断开客户端的socket.id?

Posted

技术标签:

【中文标题】断开客户端的socket.id?【英文标题】:socket.id of disconnecting client? 【发布时间】:2012-01-07 08:54:51 【问题描述】:

是否可以获取已断开连接的客户端的socket.id?下面的代码给了我undefined for socket.id

Node.js 代码

io.sockets.on('connection', function() 
    socket.on('disconnect', function(socket) 
        console.log(socket.id);
    );
);

【问题讨论】:

【参考方案1】:

io.sockets.on 作为第二个参数的回调函数应该有一个参数:套接字。你的没有,所以第二行 socket.on 上的套接字是未定义的。

并且socket.on 的回调没有给出任何参数,因此该函数中的socket 也是未定义的。

如果您将套接字参数从第二个函数声明移动到第一个函数声明,代码应该可以工作:

io.sockets.on('connection', function (socket) 
    socket.on('disconnect', function () 
        console.log(socket.id);
    );
);

【讨论】:

以上是关于断开客户端的socket.id?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新房间内所有客户端的套接字对象? (socket.io)

在 SQL Server 中检测客户端的断开连接

如何在WebSocket的服务器侧检测客户端的断开连接

socket.io 在空闲时断开客户端的连接

如何确定与 SignalR 客户端的服务器断开连接?

客户端断开连接后,我是不是必须关闭服务器端的套接字?