From af9a3231f3174fd04082b75eddb6a6c6d57654ef Mon Sep 17 00:00:00 2001 From: lonkaars Date: Mon, 18 Mar 2024 15:48:31 +0100 Subject: more extensive readme + cleanup socket --- readme.md | 31 ++++++++++++++++++++++++++----- ui/js/socket.js | 10 +++++++--- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/readme.md b/readme.md index 85216f5..0684db9 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,30 @@ -# tunnel challenge gedoe +# tunnel challenge stuff HMI software stack: -- UI d.m.v. webpagina in vanilla HTML/CSS/JS -- Chromium in kiosk modus om de webpagina fullscreen te weergeven -- websocat om de TCP socket verbinding om te zetten in een WebSocket -- nginx om de webpagina te hosten +- vanilla HTML/CSS/JS webpage as UI +- display webpage fullscreen using Chromium in kiosk mode +- use websocat to convert TCP socket connections to WebSocket +- nginx for static hosting + +## bonus bits + +- mock WebSocket server + ```sh + websocat -s 8081 + ``` +- mock TCP server + ```sh + socat stdio tcp-listen:8079 + ``` + or + ```sh + nc -lp 8079 + ``` + (both of these need `while :; do ... ; done` loops to keep them running + indefinitely) +- forward TCP server to WebSocket + ```sh + websocat --text ws-listen:127.0.0.1:8081 tcp:127.0.0.1:8079 + ``` diff --git a/ui/js/socket.js b/ui/js/socket.js index 46edb8d..bb739d5 100644 --- a/ui/js/socket.js +++ b/ui/js/socket.js @@ -1,9 +1,9 @@ import api from './api.js'; -var ws = new WebSocket('ws://localhost:8081/socket'); +var ws = new WebSocket('ws://localhost:8081/'); export default ws; -ws.onmessage = ev => { +ws.addEventListener("message", ev => { // this will already throw an error if the message doesn't contain valid JSON const msg = JSON.parse(ev.data); @@ -15,5 +15,9 @@ ws.onmessage = ev => { // run the appropriate message handler api.msg.handle[msg.type](msg); -}; +}); + +ws.addEventListener("close", () => { + console.error("WebSocket closed!"); +}); -- cgit v1.2.3