diff options
-rw-r--r-- | readme.md | 31 | ||||
-rw-r--r-- | ui/js/socket.js | 10 |
2 files changed, 33 insertions, 8 deletions
@@ -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!"); +}); |