Bạn có thể sử dụng phòng socket.io. Từ phía máy khách phát ra một sự kiện ("tham gia" trong trường hợp này, có thể là bất kỳ thứ gì) với bất kỳ số nhận dạng duy nhất nào (email, id).
Phía khách hàng:
var socket = io.connect('http://localhost');
socket.emit('join', {email: user1@example.com});
Bây giờ, từ phía máy chủ, hãy sử dụng thông tin đó để tạo một phòng duy nhất cho người dùng đó
Phía máy chủ:
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
});
});
Vì vậy, bây giờ mỗi người dùng đã tham gia một phòng được đặt tên theo email của người dùng. Vì vậy, nếu bạn muốn gửi cho một người dùng cụ thể một tin nhắn, bạn chỉ cần
Phía máy chủ:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
Điều cuối cùng cần làm ở phía máy khách là lắng nghe sự kiện "new_msg".
Phía khách hàng:
socket.on("new_msg", function(data) {
alert(data.msg);
}
Tôi hy vọng bạn có được ý tưởng.