Socket.io私人消息,同时有多个用户在线

因此,我正在构build一个聊天应用程序,并需要帮助了解如何发送私人消息。 这是我的代码,“发送消息”。

users = {} socket.on('send message', function(data, callback){ var msg = data.trim(); console.log(users); console.log('after trimming message is: ' + msg); var name = req.params.posteruname;//reciever var msg = msg; if(name in users){ var message = new Chat({ msg : msg, sender : req.user.username, reciever : name }).save(function(err, savedMessage){ if(err) { users[name].emit('whisper', {msg: "Error, some tried sending you a message but something went wrong", nick: socket.nickname}); } else { users[name].emit('whisper', { reciever: name, sender:req.user.username, msg:msg }); } }); } else{ callback("Something went wrong"); } }); 

这段代码工作不好。 当我尝试发送消息时,它仍然显示给所有用户。

看看这个文件 。 你应该指定房间。 每个人都将是一个“房间”,当你发送一个消息与事件和房间指定正确的用户将收到它。

你的users对象只是一个普通的对象,不反映我在说什么。