Showing posts with label socket.io-redis. Show all posts
Showing posts with label socket.io-redis. Show all posts

Friday, January 20, 2017

Force client disconnect by socket id

Leave a Comment

I'd like to force client disconnect by socket id using socket.io-redis. I tried a lot of research in google, but methods mentioned in old topics does not work.

Let's say, I'm making clustered application and my code at the moment runs at cluster1 instance (also I have access to all connected client's socket ids), but the client is connected to cluster2 instance. How can I force disconnect to that client by socket id only?

1 Answers

Answers 1

I've implemented it by myself and pulled in the socket.io-redis repo. Method name is remoteDisconnect.

Read More

Monday, April 11, 2016

How does socket.io-redis deal with rooms?

Leave a Comment

If I have multiple processes and am using socket.io-redis, when I do io.to(room).emit(namespace, message); is this handled seamlessly and efficiently? Or am I misunderstanding socket.io-redis's role?

1 Answers

Answers 1

Hi in short as far as I know about this is-

io.to('room').emit('namespace', 'message'); 

Means, sending message named 'namespace' with value 'message' to all clients in 'room' channel, including sender.

Detail info (found in here)-

 // send to current request socket client  socket.emit('message', "this is a test");// Hasn't changed   // sending to all clients, include sender  io.sockets.emit('message', "this is a test"); // Old way, still compatible  io.emit('message', 'this is a test');// New way, works only in 1.x   // sending to all clients except sender  socket.broadcast.emit('message', "this is a test");// Hasn't changed   // sending to all clients in 'game' room(channel) except sender  socket.broadcast.to('game').emit('message', 'nice game');// Hasn't changed   // sending to all clients in 'game' room(channel), include sender  io.sockets.in('game').emit('message', 'cool game');// Old way, DOES NOT WORK ANYMORE  io.in('game').emit('message', 'cool game');// New way  io.to('game').emit('message', 'cool game');// New way, "in" or "to" are the exact same: "And then simply use to or in (they are the same) when broadcasting or emitting:" from http://socket.io/docs/rooms-and-namespaces/   // sending to individual socketid, socketid is like a room  io.sockets.socket(socketid).emit('message', 'for your eyes only');// Old way, DOES NOT WORK ANYMORE  socket.broadcast.to(socketid).emit('message', 'for your eyes only');// New way 

Even more can be found here.

Read More