2016-11-09 6 views
0

私はsocket.ioのサンプルチャットアプリケーションを試してみましたが、うまくいきました。私がsocket.broadcast.emit()関数を試したところ、うまく動作しませんでした。 誰でも私にその問題を助けることができますか? 多分少しのバグかもしれませんが、私はそれで1時間無駄でした。socket.broadcast.emit socket io

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

io.on('connection', function(socket) { 

    socket.broadcast.emit('New participant connected.'); //DO NOT SEND ANY MESSAGE 

    socket.on('chat message', function(msg){ 

     io.emit('chat message', msg); 

    }); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 
+0

がどのようにテストしたのですか? AFAIK、 'socket.broadcast.emit()'は、接続されているすべてのソケットにメッセージを送信します。元のものを除いて、1つのクライアントだけでテストしている場合、メッセージは表示されません。 – robertklep

+0

私はfirefoxとchromeを同時に開いています(同じ時間に)。「New participant connected」はどこにもありません。 – user3092999

答えて

0

私の推測では、あなたがを聞いていないということでしょう「接続の新しい参加者。」クライアントのイベント。

これを試してみてください:

// server 
socket.broadcast.emit('broadcast', 'New participant connected.'); 

// client 
socket.on('broadcast', m => console.log('Received broadcast:', m)); 
+0

ありがとう、それは魅力のように動作します! – user3092999

関連する問題