所以我正在构建一个聊天应用程序,需要帮助找出如何发送私人消息。这是我发送的“发送消息”的代码。
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");
}
});
此代码效果不佳。当我尝试发送消息时,它仍会显示给所有用户。
答案 0 :(得分:0)
看看这个document。你应该指定房间。每个人都将成为“房间”,当您发送带有事件和房间的消息时,正确的用户将收到该消息。
你的users
对象只是一个普通的对象,不反映我在说什么。