Node.js socket.io Как исправить конкретный клиент? Я хочу "испустить" сообщение конкретному клиенту, который выбран на основе другого сообщения, полученного другим клиентом. Как мне это сделать? Я думаю о присоединении каждого клиента к своей "комнате", а затем к трансляции. Есть ли лучший способ? Ответ 1 ОБНОВЛЕНИЕ для socket.io версии 1.0 и выше io.to(socketid).emit('message', 'whatever'); Для более старой версии: Вы можете хранить каждый клиент в объекте как свойство. Затем вы можете искать сокет на основе сообщения: var basket = {}; io.sockets.on('connection', function (socket) { socket.on("register", function(data) { basket[data.nickname] = socket.id; }); socket.on("privmessage", function(data){ var to = basket[data.to]; io.sockets.socket(to).emit(data.msg); }); }); Не тестировалось... но оно должно дать вам идею Ответ 2 Для socket.io версии 1.0 используйте: io.to(socketid).emit('message', 'whatever');
Ответ 1 ОБНОВЛЕНИЕ для socket.io версии 1.0 и выше io.to(socketid).emit('message', 'whatever'); Для более старой версии: Вы можете хранить каждый клиент в объекте как свойство. Затем вы можете искать сокет на основе сообщения: var basket = {}; io.sockets.on('connection', function (socket) { socket.on("register", function(data) { basket[data.nickname] = socket.id; }); socket.on("privmessage", function(data){ var to = basket[data.to]; io.sockets.socket(to).emit(data.msg); }); }); Не тестировалось... но оно должно дать вам идею