远程断开Socket.IO和Redis连接

4

我正在尝试在NodeJs中使用socket.ioRedis adapter进行实现。

大多数情况下它都有效,但有时在尝试断开/连接套接字时仍会出现错误,因此我认为我没有正确实现它。

请问有人能解释一下socket.disconnect();io.of('/').adapter.remoteDisconnect();之间的区别吗?

如果我使用以下方式初始化我的io:

io.adapter(redisIO({
   host: config.server.redis.host,
   port: config.server.redis.port,
   requestsTimeout: config.server.redis.request_timeout
}));

我认为 socket.disconnect(); 应该意识到使用 redisIO。如果使用 remoteDisconnect,我仍然可以捕获 socket.on('disconnect', fn) 吗?还是应该在 socket.on('disconnect', fn) 中调用 remoteDisconnect
如果客户端断开连接会发生什么?如何将其传播到 socket.io 集群?
任何有效的示例都将不胜感激 :)
谢谢!
1个回答

0
捕获套接字事件disconnecting,而不是disconnect,否则就太晚了!
socket.on('disconnecting', () => {
  var room_name = sess.id
  io.of('/').adapter.remoteDisconnect(room_name, true, err => {
     delete socket.rooms[room_name]
     socket.removeAllListeners()
  })
})


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接