From f5452bc984b32011085463b5dcf57a92c17cfb8f Mon Sep 17 00:00:00 2001 From: Jeremiah Billmann Date: Tue, 16 Jul 2013 21:27:46 -0400 Subject: [PATCH] Refactor out socket call from garageservergame on server --- src/server/garageserver.io.js | 8 ++++++-- src/server/garageservergame.js | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/server/garageserver.io.js b/src/server/garageserver.io.js index ddf34dc..d865a65 100644 --- a/src/server/garageserver.io.js +++ b/src/server/garageserver.io.js @@ -29,10 +29,14 @@ api methods sendPlayersEvent(data) */ function GarageServer(socketio, options) { - this.socketPath = '/garageserver.io'; + var namespace = '/garageserver.io'; + + this.socketPath = namespace; this.io = socketio; - this.game = new garageServerGame(options); this.registerSocketEvents(options); + this.game = new garageServerGame(options, function (state) { + socketio.of(namespace).emit('update' ,state); + }); } GarageServer.prototype.registerSocketEvents = function (options) { diff --git a/src/server/garageservergame.js b/src/server/garageservergame.js index e03c0c7..9f55540 100644 --- a/src/server/garageservergame.js +++ b/src/server/garageservergame.js @@ -3,13 +3,14 @@ var playerController = require('./controllers/playercontroller'), exports = module.exports = GarageServerGame; -function GarageServerGame(options) { +function GarageServerGame(options, broadcastCallback) { this.playerController = new playerController(); this.entityController = new entityController(); this.options = options; this.startTime = 0; this.stateInterval = options.stateInterval ? options.stateInterval : 45; this.stateIntervalId = 0; + this.broadcastCallback = broadcastCallback; } GarageServerGame.prototype.start = function () { @@ -29,10 +30,8 @@ GarageServerGame.prototype.broadcastState = function () { state.playerStates = this.getState(this.playerController); state.entityStates = this.getState(this.entityController); - - this.playerController.entities.forEach(function (player) { - player.client.emit('update', state); - }); + + this.broadcastCallback(state); }; GarageServerGame.prototype.getState = function (controller) {