1

nodejs、express、socketio を使用してチャット アプリを作成しています。1 つの部屋でいくつかのチャットをサポートし、複数の部屋をサポートします。また、グローバル変数roomsなどのクライアント データをメモリに保持し、クライアント データを次のように保存します。

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 に答える