X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=server%2Fsockets.js;h=f3224f1fa9fbf54c9f1f7d52bc57d86e5c3d3858;hp=39cf260bf44929ca9b50d07b107ee8114ea44c2f;hb=c292ebb2a014646005b01e27253c162f1d639387;hpb=afde76668963c4d0d96002fcae2ebabb9acf81e4 diff --git a/server/sockets.js b/server/sockets.js index 39cf260b..f3224f1f 100644 --- a/server/sockets.js +++ b/server/sockets.js @@ -190,13 +190,24 @@ module.exports = function(wss) { // Notify all room: mostly game events case "newchat": case "newchallenge": - case "newgame": case "deletechallenge": + case "newgame": case "resign": case "abort": case "drawoffer": + case "rematchoffer": case "draw": - notifyRoom(page, obj.code, {data: obj.data}); + if (!!obj.oppsid) + // "newgame" message from Hall: do not target players + notifyAllBut(page, "newgame", {data: obj.data}, [sid, obj.oppsid]); + else notifyRoom(page, obj.code, {data: obj.data}); + break; + + case "rnewgame": + // A rematch game started: players are already informed + notifyAllBut(page, "newgame", {data: obj.data}, [sid, obj.oppsid]); + notifyAllBut("/", "newgame", {data: obj.data}, [sid, obj.oppsid]); + notifyRoom("/mygames", "newgame", {data: obj.data}); break; case "newmove": { @@ -267,11 +278,11 @@ module.exports = function(wss) { case "getfocus": case "losefocus": - if (page == "/") notifyAllButMe("/", obj.code, { page: "/" }); + if (page == "/") notifyAllBut("/", obj.code, { page: "/" }, [sid]); else { // Notify game room + Hall: - notifyAllButMe(page, obj.code); - notifyAllButMe("/", obj.code, { page: page }); + notifyAllBut(page, obj.code, {}, [sid]); + notifyAllBut("/", obj.code, { page: page }, [sid]); } break;