- var parsed = JSON.parse(msg);
- switch (parsed.type) {
- case "move":
- await db.addMove(
- parsed.data.session,
- parsed.data.x,
- parsed.data.y,
- parsed.data.state,
- );
- // fall through and return new board state
- case "board":
- var res = await db.getBoardState(
- parsed.data.session
- );
- ws.send(JSON.stringify({
- "type": "board",
- "data": res
- }));
- break;
- default:
- console.log("ws message: Unknown message type: " + type);
+ ws.on('message', async function(msg) {
+ let parsed;
+ try {
+ parsed = JSON.parse(msg);
+ switch (parsed.type) {
+ case "new":
+ ws.send(JSON.stringify({
+ "type": "new",
+ "data": await db.deleteSession(parsed.data.session)
+ }));
+ break;
+ case "move":
+ await db.addMove(
+ parsed.data.session,
+ parsed.data.x,
+ parsed.data.y,
+ parsed.data.state,
+ );
+ // fall through and return new board state
+ case "board":
+ ws.send(JSON.stringify({
+ "type": "board",
+ "data": await db.getBoardState(parsed.data.session)
+ }));
+ break;
+ default:
+ console.log("ws message: Unknown message type: " + type);
+ }
+ } catch(err) {
+ console.log(`ws message error: ${err}`);