Took 25 hours 49 minutes
This commit is contained in:
2022-11-15 00:58:59 +01:00
parent a7fac21442
commit a356b39bad
46 changed files with 936 additions and 181 deletions

View File

@ -0,0 +1,59 @@
import {WebSocketPayload} from "../../WebSocketPayload";
import debug from "debug";
import {WebSocketHandler} from "../../WebSocketHandler";
import {iTender} from "../../iTender";
import {iTenderStatus} from "../../iTenderStatus";
import {WebSocketEvent} from "../../WebSocketEvent";
const express = require('express');
const router = express.Router();
const log = debug("itender:websocket");
router.ws('/', async (ws, req, next) => {
log("Incoming websocket connection...");
if (WebSocketHandler.ws)
WebSocketHandler.ws.close(1001);
WebSocketHandler.ws = ws;
await WebSocketHandler.sendStatus();
async function sendWhenReady() {
if (iTender.status != iTenderStatus.READY) {
setTimeout(sendWhenReady, 100);
return;
}
iTender.setStatus(iTenderStatus.REFRESHING);
let payload = new WebSocketPayload(WebSocketEvent.DRINKS, false, iTender.drinks);
await WebSocketHandler.send(payload);
setTimeout(() => {
if (iTender.status == iTenderStatus.REFRESHING)
iTender.setStatus(iTenderStatus.READY);
}, 2000);
}
sendWhenReady().then();
ws.on('message', async (raw, bool) => {
let msg = WebSocketPayload.parseFromBase64Json(raw);
// If message is null, close the socket because it could not be decompiled
if (!msg) {
ws.close(1011);
return;
}
switch (msg.event) {
}
});
});
module.exports = router;