相关疑难解决方法(0)

Socket.IO 1.0.x:通过id获取套接字

在0.9.x版本中,我们可以通过ID获取套接字,如下所示:

io.sockets.socket(socketId)
Run Code Online (Sandbox Code Playgroud)

但在1.0.x我们不能.如何在1.0.x中通过id查找套接字?

node.js socket.io socket.io-1.0

15
推荐指数
5
解决办法
2万
查看次数

Socket.io通过id断开客户端

我是nodejs的新手,并试图像许多人一样写聊天室.聊天包括多个房间和客户./nick /join /help /ls users /ls rooms尽管我在获取/kick命令工作时遇到了麻烦,但是像你期望的那样工作的命令.

我只是不确定你如何通过id断开客户端,到目前为止/kick client能够呈现相应的客户端socket.id虽然我仍然坚持通过socket.id踢代码.

代码到目前为止:

断开发送的客户端/kick:socket.disconnect();

从arg中删除客户端/kick client:delete io.sockets.sockets[client];

删除客户端不会断开它们,但它们仍然可以接收数据而不发送它.

解决了

对于那些感兴趣的人来说,CuriousGuy的0.9能够完美运行 - 这是我正在使用的代码.

服务器端:

handleClientKick(socket);

...

function handleClientKick(socket) {
  socket.on('kick', function(client) {
    if (typeof io.sockets.sockets[client] != 'undefined') {
      socket.emit('message', {text: nickNames[socket.id] + ' kicked: ' + nickNames[client]});
      io.sockets.sockets[client].disconnect();
    } else {
      socket.emit('message', {text: 'User: ' + name + ' does not exist.'});
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

客户端:

kickClient = function(client) { …
Run Code Online (Sandbox Code Playgroud)

disconnect node.js socket.io

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

node.js ×2

socket.io ×2

disconnect ×1

socket.io-1.0 ×1