2011-07-27 4 views
6

ソケット側の新しい接続で関数呼び出しを行うサーバー側に次のコードがあります。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は、まったく同じものをほとんどです。

編集:部屋のスコープに

、あなたが指定したように、この操作を行います。私は、ブロードキャストが必要になりますbroadcast.to(M1 '')を使用しようとしています

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

を、さブロードキャストにアクセスする方法はありますか? – mamu

+1

更新する投稿が一致するように更新されました。 「ブロードキャスト」自体は現在のソケットにフラグを設定するだけなので、アクセスするグローバルな「ブロードキャスト」オブジェクトはありません。名前空間に存在するメソッドを使用する必要があります。 –

関連する問題