Jeg ved ikke, hvad dit design er, men du kan abonnere med én redis-klient på flere kanaler (efter at du har abonneret på klienten, kan du kun abonnere på en anden kanal eller afmelde i denne forbindelse:http://redis.io/commands /subscribe), fordi efter du har modtaget besked, har du fuld information, hvilken kanal denne besked kommer fra. Så kan du distribuere denne besked til alle interesserede kunder.
Dette hjalp mig lidt, fordi jeg kunne sætte type besked i kanalnavn og derefter dynamisk vælge handling for hver besked fra lille funktion, i stedet for at generere separat abonnement for hver kanal med separat logik.
Inde i min node.js-server har jeg kun 2 redis-klienter:
- simpel klient til alle standardhandlinger -
lpush
,sadd
og så videre - abonner klient - som lytter efter beskeder over abonnenter, så distribueres disse beskeder til alle sessioner (gemt som sæt for hver kanaltype) ved hjælp af den første redis-klient.