2012-07-14 72 views
5

我需要使用websockets(socket.io + node.js)構建雙胞胎聊天。 所以,簡單的例子,廣播消息給所有用戶:socket.io - 向某些用戶廣播

socket.on('user message', function (msg) { 
    socket.broadcast.emit('user message', socket.nickname, msg); 
    }); 

但我怎麼可以從某些用戶對某些用戶播放呢?

回答

13

有兩種possibilites:

1)每個插座已存儲在socket.id自己獨特的ID。如果您知道這兩個用戶的ID,那麼你可以簡單地使用

io.sockets[id].emit(...) 

2)定義自己的ID(例如用戶名)和connection處理程序使用

socket.join('priv/John'); 

。現在,只要你想發送信息至John,你根本就

socket.broadcast.to('priv/John').emit(...) 

旁註:無法將提供擴展到多臺機器的第一個解決方案,因此,使用第二個我的意見。

+2

我用rails存儲用戶在MySQL中,所以,我怎樣才能將用戶ID從數據庫關聯到套接字ID? – 2012-07-14 14:50:39