【问题标题】:How to make a nodejs with socketio cluster?如何使用 socketio 集群制作 nodejs?
【发布时间】:2013-05-14 16:54:37
【问题描述】:

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

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

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

我该怎么办?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我给服务器配置了一个redis store,很好用!
    • 我现在已经建立了一个redis服务器集群,我可以在redis.on('end')事件中找到redis服务器的连接,但是我想切换存储redis服务器连接到另一个集群,我该怎么办?
    • 用另一个 RedisStore 实例再次io.set('store', ...) 不起作用?否则最好的办法是使用您的负载均衡器。
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多