3

nodejsクラスターを使用してnodejs-socket.ioアプリケーションを構築しています。

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'); 

動作していますが、接続されているすべてのソケットに送信しています。ルームタイプを使用せずに特定のクライアントを選択するにはどうすればよいですか? お気に入り、

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

socket.ioクラスターアプリで特定のクライアントを選択するためのアイデアはありますか?

4

1 に答える 1

1

これを試して:

var io = require('socket.io-emitter')({ host: settings.redisIp, port: settings.redisPort });
io.to(socketId).emit('test', 'test');
于 2016-12-17T11:13:57.103 に答える