我正在尝试使用Node.js + soket.io发送通知
在客户端,我向服务器发出监听
socket.emit('send to server',{user_id:user_id,other_stuff:other_stuff})
在节点上
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(登录其他borwser的人),它不会向该用户发送任何内容。
请指出在发生某些操作时我如何向其他用户发送通知。
答案 0 :(得分:4)
如果您想在同一名称空间下向其他用户发送通知:
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)
});