X-Git-Url: https://git.auder.net/assets/icon_infos.svg?a=blobdiff_plain;f=server%2Fsockets.js;h=64b180dbb054d388f506137c8775e50d9a2c04f8;hb=bc093771b892cfeda9c6f7a97fcedf6206395746;hp=df44520d4d29115b39e610b92b77e0398e62e826;hpb=a3ac374ba213c7044db6cbcfafb81d4b66a0a290;p=vchess.git diff --git a/server/sockets.js b/server/sockets.js index df44520d..64b180db 100644 --- a/server/sockets.js +++ b/server/sockets.js @@ -17,6 +17,8 @@ module.exports = function(wss) { let clients = {}; //associative array sid --> socket wss.on("connection", (socket, req) => { const query = getJsonFromUrl(req.url); + if (query["page"] != "/" && query["page"].indexOf("/game/") < 0) + return; //other tabs don't need to be connected const sid = query["sid"]; const notifyRoom = (page,code,obj={},excluded=[]) => { Object.keys(clients).forEach(k => { @@ -39,10 +41,11 @@ module.exports = function(wss) { // Turn off message listening, and send disconnect if needed: socket.removeListener("message", messageListener); socket.removeListener("close", closeListener); + // From obj.page to clients[sid].page (TODO: unclear) if (clients[sid].page != obj.page) { - notifyRoom(clients[sid].page, "disconnect"); - if (clients[sid].page.indexOf("/game/") >= 0) + notifyRoom(obj.page, "disconnect"); + if (obj.page.indexOf("/game/") >= 0) notifyRoom("/", "gdisconnect"); } break;