Vous pouvez utiliser des salles socket.io. Du côté client, émettez un événement («rejoindre» dans ce cas, peut être n'importe quoi) avec n'importe quel identifiant unique (email, id).
Côté client:
var socket = io.connect('http://localhost');
socket.emit('join', {email: user1@example.com});
Maintenant, du côté du serveur, utilisez ces informations pour créer une salle unique pour cet utilisateur
Du côté serveur:
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
});
});
Ainsi, maintenant, chaque utilisateur a rejoint une salle nommée d'après l'e-mail de l'utilisateur. Donc, si vous souhaitez envoyer un message à un utilisateur spécifique, il vous suffit de
Du côté serveur:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
La dernière chose à faire côté client est d'écouter l'événement "new_msg".
Côté client:
socket.on("new_msg", function(data) {
alert(data.msg);
}
J'espère que vous avez l'idée.