是否可以使用socket.io-node將數據發送給選定的用戶組?例如,我如何實現與不同房間聊天?我不想讓.broadcast()向所有登錄用戶發送數據。僅使用Socket.io-node向選定用戶發送數據
0
A
回答
3
通常情況下,您應該爲每個房間提供一個已連接用戶的列表,並且這些用戶都有一個應該存儲在某個地方的client
對象。因此,當您想要將消息發送到特定房間時,您只需遍歷該房間的連接用戶並訪問其對象併發送數據。
簡而言之,您可能需要將您的數據逐個發送給組中的每個用戶。
1
socket.io內置了
在插座對象的單個連接的分組功能,比如你獲得通過時,一個新的用戶連接,你可以調用。加入(「ROOMNAME」)其中ROOMNAME是任何要用於識別「房間」的字符串,您可以使用房間名稱(如「個人資料/ 14」)來創建用於更新用戶#14個人資料的頻道。
然後,主IO對象在做這樣的事情:
io.sockets.in('profile/14').emit('newComment', {message:'hello'});
消息將走出去已經。加入所有連接()倒是給定的房間。
通常我會讓我的客戶端發出一個「hello」事件onConnect,它標識客戶端感興趣訂閱的內容,然後在服務器端,我的「hello」事件處理程序處理.join()'讓客戶進入任何需要的房間
http://stackoverflow.com/questions/4445883/node-websocket-server-possible-to-have-multiple-separate-broadcasts-for-a-sin – 2011-02-16 06:06:42