あなたのデザインはわかりませんが、複数のチャネルで1つのredisクライアントでサブスクライブできます(クライアントでサブスクライブした後は、他のチャネルでサブスクライブするか、この接続内でのみサブスクライブを解除できます:http://redis.io/commands / subscribe)、メッセージを受信した後、このメッセージの送信元の完全な情報があるためです。次に、このメッセージを関心のあるすべてのクライアントに配布できます。
個別のロジックでチャネルごとに個別のサブスクリプションを生成する代わりに、チャネル名にメッセージの種類を入力し、小さな関数からメッセージごとにアクションを動的に選択できるため、これは少し役に立ちました。
node.jsサーバー内には2つのredisクライアントしかありません:
- すべての標準アクション用のシンプルなクライアント-
lpush
、sadd
など - サブスクライブクライアント-サブスクライブされたチャネルを介してメッセージをリッスンし、このメッセージは最初のredisクライアントを使用してすべてのセッション(各チャネルタイプのセットとして保存)に配信されます。