node.jsプログラム内でredispub/ sub機能を使用している場合は、1つのredisクライアント接続を特定のチャネルでのリスニング専用にし、2つ目のredisクライアント接続を通常のコマンドの送信やチャネルへのメッセージの公開専用にする必要があります。 node_redisドキュメントから:
クライアントがSUBSCRIBEまたはPSUBSCRIBEを発行すると、その接続は「pub/sub」モードになります。その時点で、サブスクリプションセットを変更するコマンドのみが有効です。サブスクリプションセットが空になると、接続は通常モードに戻ります。
pub / subモードでRedisに通常のコマンドを送信する必要がある場合は、別の接続を開くだけです。
あなたの問題はこれらの質問にも関連しています:
- Redis / Node.js-2つのクライアント(1つのpub / sub)が書き込みの問題を引き起こしています
- 単一のRedisクライアントを同じ接続でPUBとSubとして機能させることができないのはなぜですか?