Możesz korzystać z pokoi socket.io. Ze strony klienta wyemituj zdarzenie (w tym przypadku "dołączenie" może być dowolne) z dowolnym unikalnym identyfikatorem (email, id).
Strona klienta:
var socket = io.connect('http://localhost');
socket.emit('join', {email: user1@example.com});
Teraz po stronie serwera użyj tych informacji, aby utworzyć unikalne pomieszczenie dla tego użytkownika
Po stronie serwera:
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
});
});
Tak więc teraz każdy użytkownik dołączył do pokoju nazwanego na podstawie adresu e-mail użytkownika. Więc jeśli chcesz wysłać konkretnemu użytkownikowi wiadomość, po prostu musisz
Po stronie serwera:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
Ostatnią rzeczą do zrobienia po stronie klienta jest odsłuchanie zdarzenia „new_msg”.
Strona klienta:
socket.on("new_msg", function(data) {
alert(data.msg);
}
Mam nadzieję, że wpadłeś na pomysł.