問題タブ [socket.io-redis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2496 参照

javascript - socket.io-redis を使用した socket.io: ルーム内のすべてのソケット オブジェクトを取得する

部屋に接続されているサーバー側のすべてのソケットを取得したい。

clientsメソッドの後にチェーンするinと、部屋に接続されているすべてのソケットが返されるメソッドを見つけました。

しかし、すべてのソケット セッション/ハンドシェイクを取得する必要があります。

すべてのソケット セッション/ハンドシェイクを取得する方法はありますか?

補足: ソケット サーバーは、socket.io-redis を使用したマルチ インスタンス/ノードです。

  • ソケット.io: 2.3.0
  • socket.io-redis: 5.2.0
0 投票する
1 に答える
243 参照

node.js - Socket.io インスタンスにアダプタとして追加すると、Socket.io-redis でエラーが発生する

Socket.io と Socket.Io-redis を少し試しています。Redis サーバーを稼働させています。Socket.Io サーバーの起動時に発生するエラーは次のとおりです。 ReplyError: ERR unknown command 'pubsub' なぜこのエラーが発生するのかわかりません。

私が使用しているRedisのバージョンは2.4.5です

0 投票する
1 に答える
36 参照

node.js - 多くの 2 人のチャットルームを含むアプリケーションをスケーリングする方法は?

現在、ユーザーがランダムにペアになり、互いにメッセージを送信する単語ゲームがあります。Node.js と Socket.io を使用しています。基本的に、ユーザーのオブジェクトのキーとして socket.id を保存しています。プロパティの 1 つは、パートナーの socket.id です。したがって、誰かがメッセージを送信すると、そのユーザーを見つけてパートナーの socket.id を取得するロジックがあり、メッセージをその特定の socket.id に送信します。

ただし、NGINX またはその他のロードバランサーの背後に Node の複数のインスタンスがある場合、これは機能しません。Redis などのツールの使用を検討しましたが、見つかったすべての例で、インスタンス間で同じメッセージをユーザーに送信することが含まれていました。複数のインスタンスにわたって何千人もの人々に同じメッセージを送信しているわけではありません。私は 2 人の間でのみメッセージを送信していますが、これらの小さなチャットルームが多数存在する必要があります。Node の異なるインスタンスにいるために 2 人のユーザーをペアリングできない場合はどうなりますか? それでも、ノードのすべてのインスタンスにすべてのメッセージを送信し、パートナーが接続されているインスタンスを除くすべてのインスタンスで何もしないでください。

この種の問題への取り組みに関する情報は大歓迎です。