Jeśli używasz funkcji redis pub/sub w swoim programie node.js, powinieneś przeznaczyć jedno połączenie klienta redis do nasłuchiwania na jakimś kanale i drugie połączenie klienta redis do wysyłania normalnych poleceń i/lub publikowania wiadomości na twoim kanale (kanałach). Z dokumentacji node_redis:
Gdy klient wystawia SUBSCRIBE lub PSUBSCRIBE, to połączenie jest przełączane w tryb „pub/sub”. W tym momencie ważne są tylko polecenia, które modyfikują zestaw subskrypcji. Gdy zestaw subskrypcji jest pusty, połączenie jest przywracane do normalnego trybu.
Jeśli chcesz wysyłać regularne polecenia do Redis w trybie pub/sub, po prostu otwórz inne połączenie.
Twój problem jest również związany z następującymi pytaniami:
- Redis / Node.js – 2 klientów (1 pub/sub) powodujące problemy z zapisem
- Dlaczego nie mogę mieć jednego klienta Redis działającego jako PUB i Sub w tym samym połączeniu?