【发布时间】:2015-04-24 02:05:53
【问题描述】:
我的网站有一个连接了多个用户的 IM。我希望从我的客户断开特定用户的连接。这是我正在尝试的代码:
// client side
function deleteUser(delCallsign)
{
delCallsign = delCallsign.toUpperCase();
socket.emit('deleteuser', delCallsign); // send it to the server for delete
}
// server side
socket.on('deleteuser', function(callsign)
{
socket.disconnect(usernames[callsign]);
io.sockets.emit('updateusers', usernames);
});
使用警报,我已验证我正在使用我希望断开连接的用户名调用服务器端函数。但是发生的事情是我断开连接,而不是指定的用户。我在这里做错了什么?
【问题讨论】:
-
该数组是否包含您要断开连接的个人的 socket.id?这也可能是相关的stackoverflow.com/questions/25976501/…
-
抱歉,忘了说 - usernames 数组包含用户名。
-
但是有什么东西可以通过用户的 socket.id 断开连接... socket.disconnect() 需要一个 socket.id 参数,否则它将落入其默认行为正在关闭套接字。
-
嗯,不,这解释了为什么它断开了我而不是所需的用户。当用户连接时,它们存储在套接字会话中,socket.username = username;并使用 usernames[username] = username 到数组;那么我将如何获取要断开连接的用户的 socket.id 呢?
标签: socket.io