diff options
author | Matt Kohls <mattkohls13@gmail.com> | 2019-10-29 00:05:34 -0400 |
---|---|---|
committer | Matt Kohls <mattkohls13@gmail.com> | 2019-10-29 00:05:34 -0400 |
commit | c6f4969b766c10674911d6fed034cc792333dc23 (patch) | |
tree | 7ce944e0d7d3003d3496787b7095a6251cdf8993 /rogue-server.js | |
parent | ae7f2b5ef9c724a2e346e351cb9bd7906c236361 (diff) | |
download | rogue.js-c6f4969b766c10674911d6fed034cc792333dc23.tar.gz rogue.js-c6f4969b766c10674911d6fed034cc792333dc23.tar.bz2 rogue.js-c6f4969b766c10674911d6fed034cc792333dc23.zip |
Starting to add bits for the server
Really not excited about the quality of example code out in the wild to
learn from
Diffstat (limited to 'rogue-server.js')
-rw-r--r-- | rogue-server.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/rogue-server.js b/rogue-server.js new file mode 100644 index 0000000..a8d553a --- /dev/null +++ b/rogue-server.js @@ -0,0 +1,44 @@ +/* + * Server for rogue.js + * + * Matt Kohls + * 2019 + * GPL3 + */ + +const http = require('http'); +const WebSocket = require('ws'); +const uuid = require('uuid/v4'); + +// Used to keep track of all the players and their connection +const players = new Map(); + +const httpServer = http.createServer(); +const wsServer = new WebSocket.Server({ noServer: true }); + +wsServer.on('connection', function connection(ws, request) { + players.set(ws, uuid()); + console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' joins'); + + ws.on('open', function join() { + // Do things on an open, doesn't seem to get hit though + }); + + ws.on('message', function message(msg) { + // Do thing with message from client + console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' says \"' + msg + '\"'); + }); + + ws.on('close', function leave() { + console.log(new Date().toUTCString() + ' | ' + players.get(ws) + ' leaves'); + clients.delete(ws); + }); +}); + +httpServer.on('upgrade', function upgrade(request, socket, head) { + wsServer.handleUpgrade(request, socket, head, function done(ws) { + wsServer.emit('connection', ws, request); + }); +}); + +httpServer.listen(8080); |