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 私信,多用户同时在线的主要内容,如果未能解决你的问题,请参考以下文章

socket.io 判断用户是在线还是离线

socketserver实现多用户同时在线ftp

python 开发一个支持多用户在线的FTP

socket.io如何进行分布式部署

python 多用户在线的FTP程序

开发一个支持多用户在线的FTP程序