broadcast_move(square) {
this.broadcast_event("move", square);
}
+
+ handle_events(request, response) {
+ super.handle_events(request, response);
+
+ /* When a new client joins, replay all previous moves to it. */
+ for (let move of this.moves) {
+ response.write(`event: move\ndata: ${move}\n\n`);
+ }
+ }
}
router.get('/', (request, response) => {
const game = request.game;
if (! request.session.nickname)
- response.render('choose-nickname.html', { game_name: "Tic Tac Toe" });
+ response.render('choose-nickname.html', { game_name: game.meta.name });
else
- response.render('tictactoe-game.html');
+ response.render(`${game.meta.identifier}-game.html`);
});
router.post('/move', (request, response) => {
exports.router = router;
exports.name = engine_name;
exports.Game = TicTacToe;
+
+TicTacToe.meta = {
+ name: "Tic Tac Toe",
+ identifier: "tictactoe"
+};
+
+exports.meta = TicTacToe.meta;