To facilitate this use case we created two modules.
Socket io rooms redis.
Prefix namespace room prefix.
Rooms are used to further separate concerns.
Does socket io redis keep connections upon restart in cluster mode.
Once socket io establishes connection we used the redis client to subscribe to chatmessages and activeusers channels.
This module is not intended for end user usage but can be used as an interface to inherit from from other adapters you might want to build like socket io redis.
This is the adapter using the redis pub sub mechanism to broadcast messages between multiple nodes.
We checked for any message event triggered by a published message.
296 opened nov 19 2018 by cschwaderer the function that takes a list of sockets in a room takes a long time.
We then broadcasted the message with socket io using message event for messages from chatmessage channel and users event for messages from activeusers channel.
These channels are called rooms.
Default value is socket io.
Let s call the room room josh.
Creating a real time chat app with redis node js and socket io if you have redis node js and the heroku toolbelt installed on your machine then you ve got everything you need to build a real.
One thing to keep in mind while using rooms is.
Socket on disconnect function console log io sockets adapter rooms.
In some cases you might want to emit events to sockets in socket io namespaces rooms from outside the context of your socket io processes.
Rooms also share the same socket connection like namespaces.
This is the default socket io in memory adapter class.
The socket io redis adapter broadcasts and receives messages on particularly named redis channels.
For global broadcasts the channel name is.
Prefix namespace in broadcasting to a single room the channel name is.
The base channel name.
For every socket connection the user makes we add the socket instance to a room dedicated for this user.
The rooms that the socket which is disconnecting from still appear in the print out yet their values will appear as empty arrays indicating no remaining users.