使用node.js + socket.io发送通知
我正在尝试使用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(谁login了其他borwser),则不会向该用户发送任何内容。
请指出,如何发送通知给不同的用户。
如果你想在同一个命名空间下向其他用户发送通知:
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'); })
没有必要在客户端join你的侦听器名字的id:
socket.on('notification',function(data){ alert(data) });