2011-07-27 73 views
6

我在服務器端有以下代碼,它在與socket的新連接上執行函數調用。如何在socket.io循環中進行廣播

var io = require('socket.io').listen(80); 

io.sockets.on('connection', function (socket) { 
    socket.broadcast.emit('user connected'); 
}); 

現在我有另一個模塊,採取休息請求,它希望在所有打開的套接字廣播。如何做呢?

有沒有辦法使用無插座廣播?像

io.broadcast.emit('user connected'); 

編輯 更喜歡呢?

io.sockets.broadcast.to('m1').emit('user message', 'from', 'msg'); 

回答

7

確實!只需在io.sockets上調用它即可。

io.sockets.emit('user connected') 

這是非常正是broadcast呢,除了broadcast需要從廣播排除自身的額外步驟。

編輯:

爲範圍的房間,就像你指定,這樣做:

io.sockets.in('m1').emit('user message', 'from', 'msg'); 
+0

我想使用broadcast.to( 'M1'),這將需要廣播時,有沒有辦法訪問廣播? – mamu

+1

更新後的帖子進行匹配。 「廣播」本身只是在當前套接字上設置標誌,所以沒有全局「廣播」對象可以訪問;您必須使用名稱空間上存在的方法。 –