diff options
| author | Patrick | 2026-10-16 19:56:58 +0200 |
|---|---|---|
| committer | Patrick | 2026-10-16 19:56:58 +0200 |
| commit | 10187464cd994a3501f029a4c890a24f3dbe8774 (patch) | |
| tree | 607e23f5efe04e3913013caf90b01bfa08d30273 | |
| parent | fb958dd095c87b0f16aadbb21d71f3870b5d7a9c (diff) | |
| download | zhttpws-10187464cd994a3501f029a4c890a24f3dbe8774.tar.gz zhttpws-10187464cd994a3501f029a4c890a24f3dbe8774.zip | |
websocket /ws/, reconnect before sending
| -rw-r--r-- | src/main.zig | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main.zig b/src/main.zig index cf64c8e..b6b2e13 100644 --- a/src/main.zig +++ b/src/main.zig @@ -75,16 +75,21 @@ fn handle_request(alloc: std.mem.Allocator, io: Io, stream: Io.net.Stream) void \\ textarea { width: calc(100% - 8px); height: calc(100% - 60px); } \\ </style></head><body> \\ <script> - \\ const socket = new WebSocket(`wss://${window.location.host}`); - \\ socket.addEventListener("open", (event) => { - \\ tv.value += "Connected!\n"; - \\ }); - \\ socket.addEventListener("message", (event) => { - \\ socket.onmessage = (e) => { tv.value += `[${new Date().toLocaleString()}] ${e.data}\n`; } - \\ }); + \\ function tryConnect() { + \\ const socket = new WebSocket(`wss://${window.location.host}/ws`); + \\ socket.addEventListener("open", (event) => { + \\ tv.value += "Connected!\n"; + \\ }); + \\ socket.addEventListener("message", (event) => { + \\ socket.onmessage = (e) => { tv.value += `[${new Date().toLocaleString()}] ${e.data}\n`; } + \\ }); + \\ return socket; + \\ } + \\ let socket = tryConnect(); \\ function Send() { \\ if (tn.value.length == 0) { window.alert("Please enter a name"); return; } \\ if (tb.value.length == 0) { return; } + \\ if (socket.readyState != 1) { socket = tryConnect(); } \\ socket.send(`${tn.value}: ${tb.value}`); \\ tb.value = ""; \\ } |
