socket.io redis-adapter +附加Express服务器集群

问题描述

我正在尝试设置在集群Express服务器上运行的socket.io应用程序。因此,我正在使用redis适配器。

我的代码如下:

    import * as socketIo from "socket.io";
    var redisAdapter = require("socket.io-redis");

    const io = socketIo();
    server = http.createServer(app);
    io.adapter(redisAdapter(process.env.REdisCLOUD_URL));
    io.attach(server,{
      transports: ["websocket","polling"],});

这很好用,但是我的问题是,我什至需要那个attach()方法吗?在文档中,出于某种原因,他们将其省略。但是我确实需要这种传输配置,因为我正在集群进程上运行服务器。如果我不应该使用Attach,如何配置传输?

一个问题是关于集群行为的问题-我正在使用以下代码位来检查套接字并对其做一些事情:

  • io.sockets.adapter.rooms["roomName"]
  • io.in("roomName").clients()

这些在我所有集群实例中都是全局的吗?意味着节点0可以读取使用io.in("roomName").clients()连接到节点1的套接字?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)