2011-08-09 14 views
1

は、私は、コード例を以下している:Socket.io 0.7はbroadcast.sendを呼び出せませんか? socket.io 0.6で

var io = require('/usr/lib/node_modules/socket.io'); 
var server = http.createServer(function(req,res){ 
     var path = url.parse(req.url).pathname; 
     switch(path){ 
      .... 
      //core codes 
      socket.broadcast(data); 
     } 
}).listen(8080); 

// ... ... 

var socket = io.listen(server); 

、すべてがOKだろう。

しかし、私はsocket.ioを0.7に更新し、socket.broadcastをsocket.sockets.broadcast.send(data)に変更しました。

例外があります: '未定義'の送信を呼び出すことができませんか?

特定のイベントで聞くことなく誰にでもデータを送信する方法を教えてもらえますか?

clients = new Array(); 
socket.on('connection',function(socket){ clients.push(socket);} 
// ... 
for(s in clients) s.send(data); 
// ... 

。それは本当に、この方法のように行うために必要なん:たぶんここ

は方法は何ですか?

ありがとうございます!

+1

にだけ追記:いけないが、代わりに(;;)に使用する、配列を反復する(中)に使用を。 –

+0

はい、あります!それ以外のアイデアは? – benyu

答えて

2

io.sockets.send() // broadcasts to all connected users 
io.sockets.json.send() // broadcasts JSON to all connected users 
io.sockets.emit('eventname') // broadcasts and emit 

または名前空間

io.of('/namespace').send('msg'); // broadcast to all connect users in /namespace 
+0

なぜブロードキャストを呼び出さないのですか? – benyu

+0

ブロードキャストメソッドは 'io.sockets'や' io.of( '/ namespace') 'には存在しないので、' socket.broadcast'(接続されているすべてのソケットにブロードキャストします。 !現在のソケット)と 'io.socket.send'は例外なく、すべてのユーザにそれを送ります。 – 3rdEden

0

あなただけ

var io = require('socket.io').listen(80); 
io.sockets.on('connection', function (socket) { 
    socket.broadcast.emit('user connected'); 
}); 
+0

彼は正しい方法だとは思わない。それは '' io.on( 'connection') ''(または '' socket.on''や '' sioServer.on''や '' require( 'socket.io')の返り値でなければなりません。 ''が呼び出されます)。 –

+0

コードスニペットはsocket.ioウェブサイトからのものです。間違いなく正しいです。 – pkyeck

+0

ええ、構文が少し違うので、私は名前空間を使うときと混乱します。 Sry! –

0

使用

sioServer.sockets.on('connection', function (client) { 
    client.broadcast.send('Hello, Everybody else!'); 
}); 

他のすべての接続されたクライアントにブロードキャスト(つまり放送client自身を除く)、かつブロードキャストする

sioServer.sockets.on('connection', function (client) { 
    sioServer.sockets.send('Hello, Everybody!'); 
}); 

を使用するための操作を行うことができますみんなに(client自身を含む)。

あなたがsocket.io 0.7では
+0

いいえ、私はイベントで聴きたくありません!メッセージはphpによってカールから投稿され、直接各クライアントに送信されます! – benyu

+0

2番目の例は、Express/Connectパスの内部または基本的にコード内の他の場所からも機能します。 –

関連する問題