2014-02-17 39 views
2

因此,我正在構建一個聊天應用程序,並需要幫助瞭解如何發送私人消息。這是我的代碼,「發送消息」。Socket.io私人消息,同時有多個用戶在線

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

new Chat() - 來自哪個模塊? – Zlatko

+0

這是我定義的貓鼬模式。將消息保存到數據庫。 – blehadfas1

回答

0

看一看document。你應該指定房間。每個人都會成爲一個「房間」,當你發送帶有指定事件和空間的消息時,正確的用戶將收到它。

您的users對象只是一個普通的對象,並不反映我在說什麼。