我正在尝试使用 Node.js + soket.io 发送通知
在客户端,我向服务器发出监听
socket.emit('send to server',{user_id:user_id,other_stuff:other_stuff})
在 Node 上
socket.on('send to server',function(date){ socket.emit('notification_'+user_id,'test data'); });
在客户端监听通知
socket.on("notification_<?php echo $_SESSION['user_id'];?>",function(date){alert(data)});
问题是它不向其他用户发送通知
如果我在发出“发送到服务器”期间传递我自己的 user_id,那么它会返回给我自己,但如果使用其他 user_id(登录到其他浏览器),它不会向该用户发送任何内容。
请指出当发生某些操作时我如何向不同的用户发送通知。
最佳答案
如果您想向同一命名空间下的其他用户发送通知:
socket.on('send to server',function(data){
socket.broadcast('notification','test data');
})
仅适用于特定用户(sockets.io 1.x)
socket.on('send to server',function(data){
socketId = getSocketIdFromUserId(user_id);
io.to(socketId).emit('notification', 'test data');
})
无需将 id 与监听器的名称连接起来 在客户端:
socket.on('notification',function(data){
alert(data)
});
关于javascript - 使用node.js + socket.io 发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26593695/