X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=game.js;h=20cd2411e2275ff8aef51e1c35a3772931815b6b;hb=ea14cbbefb26afd558aff8329d92f1a7b9442bac;hp=f99ff234fa24c64aa9b9b362a6ad7c475902d5fb;hpb=76e5097689002f03c721c388e2ca71c52abf3354;p=empires-server diff --git a/game.js b/game.js index f99ff23..20cd241 100644 --- a/game.js +++ b/game.js @@ -33,6 +33,24 @@ class Game { this.broadcast_string(`event: ${type}\ndata: ${data}\n`); } + handle_events(request, response) { + /* These headers will keep the connection open so we can stream events. */ + const headers = { + "Content-type": "text/event-stream", + "Connection": "keep-alive", + "Cache-Control": "no-cache" + }; + response.writeHead(200, headers); + + /* Add this new client to our list of clients. */ + const id = this.add_client(response); + + /* And queue up cleanup to be triggered on client close. */ + request.on('close', () => { + this.remove_client(id); + }); + } + } module.exports = Game;