aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2024-03-18 15:48:31 +0100
committerlonkaars <loek@pipeframe.xyz>2024-03-18 15:48:31 +0100
commitaf9a3231f3174fd04082b75eddb6a6c6d57654ef (patch)
treef63cb07388967720f49ad125f274a69dc5ccd61c
parentc13e5adad9dbbc3ab45461099c65c16b5873c760 (diff)
more extensive readme + cleanup socket
-rw-r--r--readme.md31
-rw-r--r--ui/js/socket.js10
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!");
+});