diff options
Diffstat (limited to 'server.js')
-rwxr-xr-x | server.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/server.js b/server.js new file mode 100755 index 0000000..996bb92 --- /dev/null +++ b/server.js @@ -0,0 +1,42 @@ +#!/usr/bin/env node + +const net = require("net"); +const util = require("util"); +const protocol = require("./protocol.js"); + +if (process.argv.length != 4) { + console.log("Usage: ./server.js <hostname> <port>"); + console.log("Pass address of doomrooms server as arguments."); + process.exit(1); +} + +const GAME_ID = "tictactoe-tom"; +const GAME_NAME = "Tic Tac Toe"; + +function messageHandler(msg) { + console.log("Message: " + util.inspect(msg)); +} + +async function registerGame(conn) { + let msg = await conn.send(new protocol.Message("make-game", GAME_ID, GAME_NAME)); + if (msg.err) { + msg = await conn.send(new protocol.Message("attach-game", GAME_ID, false)); + if (msg.err) { + console.log("Game already managed by another gameserver, and not forcing"); + process.exit(1); + } + } + console.log(msg); +} + +const conn = new protocol.Connection(net.createConnection(+process.argv[3], process.argv[2]), messageHandler); +conn.conn.on("connect", () => { + console.log("Connected to roomserver"); + + conn.conn.on("end", () => { + console.log("Connection with roomserver unexpectedly closed!"); + process.exit(1); + }); + + registerGame(conn); +}); |