2017-10-24 2 views
0

特定のソケットにメッセージを送信します。 socketIdをmongoo dbに保存しました。私がイベントを出すとき、イベントを出さない。その作品は、罰金、私は特定のソケットなしで放出する場合、ここ は私のコードio.to( 'socketId')イベントを送出していません

io.on('connection', function (socket) { 
socket.on('save-message-private',function(data){ 
console.log('private messgae ') 
OnlineUsers.find({username:data.receiver},function(err,res){ 
    if(!err){ 
    // console.log(res) 
    console.log(res[0].socketId) 
    io.to(res[0].socketId).emit('new-message-private', { message: res }); 
    } 
    else 
    console.log(err) 

    }) 
}) 
    }); 

であり、ここで、角度4

ngOnInit() { 

var user = JSON.parse(localStorage.getItem("user")); 
console.log(user) 
if(user!==null) { 
    this.socket=io('http://localhost:4000',{query:"username="+user.nickname}); 
    this.getChatByRoom(user.room); 
    this.msgData = { room: user.room, nickname: user.nickname, message: '',receiver:'group' } 
    this.joinned = true; 
    this.scrollToBottom(); 
    this.getOnlineUsers(); 
    this.socket.on('new-message', function (data) { 
    if(data.message.room === JSON.parse(localStorage.getItem("user")).room) { 
     this.chats.push(data.message); 
     this.msgData = { room: user.room, nickname: user.nickname, message: '' } 
     this.scrollToBottom(); 
    } 
    }.bind(this)); 

    this.socket.on('new-message-private',function(data){ 
    console.log('private new') 
    console.log(data); 
    }.bind(this)); 
} 

} 

新しいプライベートの私のフロントエンドである私を助けてください./問題何ができますか-messageはDBに保存されて

+0

ことができます、あなたがログインしているとして、あなたはそれが同じIDがある場合は、メッセージをreciveとチェックすることを期待クライアントサイト上の 'はconsole.log(this.socket.id)'サーバ 'console.log(res [0] .socketId)'で?サーバ側の –

+0

は、それはそれはあなたが接続された後 – Asad

+0

@RolandStarkeそのソケットにsocketIdが、その発光ないイベントを慰め。 – Asad

答えて

0

マイsocketIdを動作していないクライアント側socketId異なっていました。私は、DB上のsocketIdを更新し、問題が解決し

関連する問題