คุณสามารถใช้ห้อง 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);
});
});
ตอนนี้ผู้ใช้ทุกคนเข้าร่วมห้องที่ตั้งชื่อตามอีเมลของผู้ใช้แล้ว ดังนั้นหากคุณต้องการส่งข้อความถึงผู้ใช้เฉพาะคุณก็ต้องทำ
ฝั่งเซิร์ฟเวอร์:
io.sockets.in('user1@example.com').emit('new_msg', {msg: 'hello'});
สิ่งสุดท้ายที่ต้องทำในฝั่งไคลเอ็นต์คือฟังเหตุการณ์ "new_msg"
ด้านลูกค้า:
socket.on("new_msg", function(data) {
alert(data.msg);
}
ฉันหวังว่าคุณจะได้รับความคิด