Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nodejs cluster - socket.io-emitter send data to specific client

I am building nodejs - socket.io application with nodejs cluster.

socket.io-redis

var ioredis = require('socket.io-redis');
io.adapter(ioredis({ host: config.redisIp, port: config.redisPort }));

socket.io-emitter

var io = require('socket.io-emitter')({ host: settings.redisIp, port: settings.redisPort });
io.emit('test', 'test'); 

its working but, sending to all connected sockets. How can i select specific client without using room types. like,

io.to({_id: user._id}).emit('test', 'test'); //its not work. socket._id synchronized on connect event.

any idea for select specific client on socket.io cluster app ?

like image 605
user3838971 Avatar asked Mar 07 '26 17:03

user3838971


1 Answers

Try this:

var io = require('socket.io-emitter')({ host: settings.redisIp, port: settings.redisPort });
io.to(socketId).emit('test', 'test');
like image 142
Oleksii Shevchenko Avatar answered Mar 10 '26 07:03

Oleksii Shevchenko