2013-05-12 70 views
1

我正在使用socketio構建遊戲。
服務器存儲玩家的數量,當它進入2時,遊戲開始。
但是,當我一個一個地打開兩個瀏覽器時,只有第一個(而不是後一個)接收遊戲開始消息。
客戶端:socketio廣播消息只發送給一個

var socket = io.connect('http://localhost:8080'); 
socket.on('connected', function (data) { 
    $('#status').html('You are connected'); 
    socket.emit('1 party connected'); 
}); 

socket.on('game start', function (data) { 
    $('#status').html('game start'); 
}); 

服務器端:

var app = require('http').createServer(handler) 
    , io = require('socket.io').listen(app) 
    , fs = require('fs') 

app.listen(8080); 

var connected_parties_no = 0; 

io.sockets.on('connection', function (socket) { 
    socket.emit('connected', { hello: 'world' }); 
    socket.on('1 party connected', function() { 
    connected_parties_no++; 
    console.log(connected_parties_no.toString()+' parties are connecting.'); 
    if (connected_parties_no == 2) { 
     game_start(socket); 
    } 
    }); 
    socket.on('disconnect', function() { 
    connected_parties_no--; 
    }); 
}); 

function game_start(socket) { 
    socket.broadcast.emit('game start'); 
} 

回答

2
socket.broadcast.emit('game start'); 

'game start'事件發送到大家除了`插座。你最有可能尋找

io.sockets.emit('game start');