- // Start a new game
- const oppId = games[page]["id"];
- const fen = games[page]["fen"];
- delete games[page];
- const mycolor = Math.random() < 0.5 ? 'w' : 'b';
- socket.send(
- JSON.stringify({code:"newgame",fen:fen,oppid:oppId,color:mycolor}));
- if (!!clients[page][oppId])
- {
- clients[page][oppId].send(
- JSON.stringify(
- {code:"newgame",fen:fen,oppid:sid,color:mycolor=="w"?"b":"w"}),
- noop);
- }
+ case "newchat":
+ if (!!clients[page][obj.oppid])
+ {
+ clients[page][obj.oppid].send(
+ JSON.stringify({code:"newchat",msg:obj.msg}), noop);
+ }
+ break;
+ case "newmove":
+ if (!!clients[page][obj.oppid])
+ {
+ clients[page][obj.oppid].send(
+ JSON.stringify({code:"newmove",move:obj.move}), noop);
+ }
+ break;
+ case "ping":
+ if (!!clients[page][obj.oppid])
+ socket.send(JSON.stringify({code:"pong",gameId:obj.gameId}));
+ break;
+ case "myname":
+ // Reveal my username to opponent
+ if (!!clients[page][obj.oppid])
+ {
+ clients[page][obj.oppid].send(JSON.stringify({
+ code:"oppname", name:obj.name}));
+ }
+ break;
+ case "lastate":
+ if (!!clients[page][obj.oppid])
+ {
+ const oppId = obj.oppid;
+ obj.oppid = sid; //I'm oppid for my opponent
+ clients[page][oppId].send(JSON.stringify(obj), noop);
+ }
+ break;
+ case "newgame":
+ if (!!games[page])
+ {
+ // Start a new game
+ const oppId = games[page]["id"];
+ const fen = games[page]["fen"];
+ delete games[page];
+ const mycolor = Math.random() < 0.5 ? 'w' : 'b';
+ socket.send(JSON.stringify(
+ {code:"newgame",fen:fen,oppid:oppId,color:mycolor}));
+ if (!!clients[page][oppId])
+ {
+ clients[page][oppId].send(
+ JSON.stringify(
+ {code:"newgame",fen:fen,oppid:sid,color:mycolor=="w"?"b":"w"}),
+ noop);
+ }
+ }
+ else
+ games[page] = {id:sid, fen:obj.fen}; //wait for opponent
+ break;
+ case "cancelnewgame": //if a user cancel his seek
+ delete games[page];
+ break;
+ case "resign":
+ if (!!clients[page][obj.oppid])
+ clients[page][obj.oppid].send(JSON.stringify({code:"resign"}), noop);
+ break;