Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Socket.io redisstore

Using the socket.io redisstore adapter/store (?), is it possible to 'see' all clients and 'select' even a client that's not directly connected to your socket.io server? Or is this limited to the 'rooms' functionality of socket.io only?

To give a practical example, two users in the same chat room are connected to two different socket.io nodes, does the redisstore adapter/store make it possible to whisper from one user to the other without huge changes to the code if you already have a working single process/server implementation?

The reason I am asking is that I am not currently yet in the development phase of my project to be overly concerned with scaling (nor do I have the time to dive into the concepts behind node.js scaling which looks quite different from what I am used to (first full blown node.js project now)), but I do not feel like building an infrastructure which turns out to be impossible to scale.

like image 516
David Mulder Avatar asked Nov 12 '22 18:11

David Mulder


1 Answers

Redis store (/lib/stores/redis.js) only work with redis pub-sub for message propagation between servers. So if you want to get list of connected users - you have to do it yourself.

But if you want to pass messages between two users - I think that will not be a problem with standard socket.io+redis library because redis pub-sub is very useful for passing messages between servers\processes.

like image 153
Elephant Avatar answered Nov 15 '22 10:11

Elephant