1

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

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

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

我该怎么办?

4

1 回答 1

1

您需要使用 RedisStore 配置您的服务器。在这里查看更多信息:https ://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO#server

于 2013-05-14T08:54:37.703 回答