Você pode usar salas socket.io. Do lado do cliente, emita um evento ("join", neste caso, pode ser qualquer coisa) com qualquer identificador único (e-mail, id).
Lado do cliente:
var socket = io.connect('http://localhost');
socket.emit('join', {email: user1@example.com});
Agora, do lado do servidor, use essas informações para criar uma sala exclusiva para esse usuário
Lado do servidor:
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
});
});
Então, agora cada usuário entrou em uma sala com o nome do e-mail do usuário. Então, se você quiser enviar uma mensagem para um usuário específico, você só precisa
Lado do servidor:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
A última coisa que resta a fazer no lado do cliente é ouvir o evento "new_msg".
Lado do cliente:
socket.on("new_msg", function(data) {
alert(data.msg);
}
Espero que você tenha a idéia.