node.js - 如何制作带有socket io集群的node js?

标签 node.js sockets cluster-computing socket.io

我用nodejs、express和socketio编写了一个聊天应用程序。 支持一室聊天,也支持多房间聊天, 而且我把客户端数据保存在内存中,比如有全局的 变量房间,我像这样存储客户数据..

var rooms =  {
  "room1": [
         {username: "user1", socket: user1Socket}, 
         {username: "user2", socket: user2Socket}, 
  ],
  "room2": [
         {username: "user3", socket: user3Socket}, 
         {username: "user4", socket: user4Socket}, 
  ]
}

但是集群中有多个服务器,客户端不知道连接到哪一个服务器,因为这是负载均衡器的工作,然后出现问题,user1和user2应该在同一个房间,但是他们可能连接到不同的服务器..

我该怎么办?

最佳答案

您需要使用 RedisStore 配置服务器。请参阅此处了解更多信息:https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO#server

关于node.js - 如何制作带有socket io集群的node js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538381/

相关文章:

javascript - ES6 和 sequelize-cli

c - TCP 套接字客户端 - 重新定义错误

Android:如何从 TCP 客户端应用程序中更改 IP 地址?

c++ - 网格引擎集群+OpenCV : strange behaviour

java - glassfish 4.1 和 JMS 集群

javascript - Node.js 抓取数据点击事件

javascript - NodeJs 堆 js 模块 : Heap is not a constructor

node.js - Nodejs azure函数应用程序错误: connect ETIMEDOUT ipaddress:443

php - Socket发送终端输入的数据

jsf-2 - JSF 2.0 应用程序的水平扩展