Om du använder redis pub/sub-funktionalitet i ditt node.js-program bör du dedikera en redis-klientanslutning för att lyssna på någon kanal och en andra redis-klientanslutning för att skicka normala kommandon och/eller publicera meddelanden till dina kanaler. Från node_redis docs:
När en klient utfärdar en SUBSCRIBE eller PSUBSCRIBE, sätts den anslutningen i "pub/sub"-läge. Vid den tidpunkten är endast kommandon som ändrar prenumerationsuppsättningen giltiga. När prenumerationsuppsättningen är tom sätts anslutningen tillbaka i normalt läge.
Om du behöver skicka vanliga kommandon till Redis när du är i pub/underläge, öppna bara en annan anslutning.
Ditt problem är också relaterat till dessa frågor:
- Redis / Node.js - 2 klienter (1 pub/sub) som orsakar problem med skrivningar
- Varför kan jag inte ha en enda Redis-klient som fungerar som PUB och Sub i samma anslutning?