Вы можете использовать комнаты socket.io. Со стороны клиента отправьте событие («присоединиться» в данном случае может быть что угодно) с любым уникальным идентификатором (адрес электронной почты, id).
Сторона клиента:
var socket = io.connect('http://localhost');
socket.emit('join', {email: user1@example.com});
Теперь со стороны сервера используйте эту информацию, чтобы создать уникальную комнату для этого пользователя.
На стороне сервера:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.on('join', function (data) {
socket.join(data.email); // We are using room of socket io
});
});
Итак, теперь каждый пользователь присоединился к комнате, названной в честь электронной почты пользователя. Поэтому, если вы хотите отправить сообщение конкретному пользователю, вам просто нужно
На стороне сервера:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
Последнее, что осталось сделать на стороне клиента, - это прослушать событие "new_msg".
Сторона клиента:
socket.on("new_msg", function(data) {
alert(data.msg);
}
Надеюсь, вы уловили идею.