发送使用Node.js的通知+ socket.io

发送使用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) 
}); 
+0

您好杰克,非常感谢y我们的答案,只是有一点疑问,当我将使用io.to(data.user_id)时,谁将识别哪个用户发送哪个用户 – 2014-10-27 22:06:40

+0

我的错误是您需要通过的socketId – 2014-10-27 22:11:38

+0

您可能需要执行socketId和userId之间的映射,看看这个答案http://*.com/questions/6563885/socket-io-how-do-i-get-a-list-of-connected-sockets-clients – 2014-10-27 22:14:49