发送使用Node.js的通知+ socket.io
问题描述:
我想了解如何使用Node.js发送通知+ soket.io发送使用Node.js的通知+ socket.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登录),它不会向该用户发送任何内容。
请注意,如何在发生某些操作时向不同的用户发送通知。
答
如果你想在同一命名空间下发送给其他用户的通知:
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');
})
没有必要在客户端加入您的听众名字 的编号:
socket.on('notification',function(data){
alert(data)
});
您好杰克,非常感谢y我们的答案,只是有一点疑问,当我将使用io.to(data.user_id)时,谁将识别哪个用户发送哪个用户 – 2014-10-27 22:06:40
我的错误是您需要通过的socketId – 2014-10-27 22:11:38
您可能需要执行socketId和userId之间的映射,看看这个答案http://*.com/questions/6563885/socket-io-how-do-i-get-a-list-of-connected-sockets-clients – 2014-10-27 22:14:49