Socket.io 私信,多用户同时在线
Posted
技术标签:
【中文标题】Socket.io 私信,多用户同时在线【英文标题】:Socket.io Private messaging, with multiple users online at the same time 【发布时间】:2014-03-17 09:51:37 【问题描述】:所以我正在构建一个聊天应用程序,并且需要帮助弄清楚如何发送私人消息。这是我的代码,用于“发送消息”。
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");
);
这段代码运行得不是很好。当我尝试发送消息时,它仍然显示给所有用户。
【问题讨论】:
new Chat() - 来自哪个模块? 这是我定义的猫鼬模式。要将消息保存到数据库中。 【参考方案1】:看看这个document。您应该指定房间。每个人都是一个“房间”,当您发送带有事件和房间的消息时,正确的用户会收到它。
您的users
对象只是一个普通对象,不要反映我在说什么。
【讨论】:
以上是关于Socket.io 私信,多用户同时在线的主要内容,如果未能解决你的问题,请参考以下文章