0

私のアプリは複数のアプリ(管理者、クライアント、ワーカー)に分かれています。

RedisStoreでsocket.ioを使用しています。管理者がログインすると、socket.io接続を設定し、user_idという名前の部屋にソケットを参加させます。

socket.ioがリッスンするサーバーを作成せずに、別のアプリ(たとえばワーカーから)からこの部屋にブロードキャストするにはどうすればよいですか?

io.set(RedisStoreを設定するため)はvar io = require('socket.io').listen(server)

redisチャネルに直接公開する必要がありますか?もしそうなら、どうすればそれが名前であるかを知ることができますか?

4

1 に答える 1

0

複数のノードインスタンスがメッセージを介して通信する1つの方法は、メッセージブローカー(メッセージキューサービス)を使用することです。各ノードインスタンスは、「general_chat」や「maintenance」など、MQ内の特定のチャネルにバインドします。その後、すべてのインスタンスがそれらのメッセージを受信します。ドット構文「chat.room1」および「chat.admin」を使用して、複数のバインディングレベルをイベントで追加できます。ActiveMQ、RabbitMQ、SQS、およびその他の同様のサービスを確認してください。一部はオープンソースです。

于 2013-01-18T07:51:29.337 に答える