From 7101c718891e3cc8ce304c2239009ac6fb400331 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 27 Feb 2023 22:51:12 +0100 Subject: [PATCH] multiple clients --- ws-sse/multiple/index.html | 19 +++++++++ ws-sse/multiple/script.js | 84 ++++++++++++++++++++++++++++++++++++++ ws-sse/script.js | 1 + 3 files changed, 104 insertions(+) create mode 100644 ws-sse/multiple/index.html create mode 100644 ws-sse/multiple/script.js diff --git a/ws-sse/multiple/index.html b/ws-sse/multiple/index.html new file mode 100644 index 0000000..d38765c --- /dev/null +++ b/ws-sse/multiple/index.html @@ -0,0 +1,19 @@ + + + + + + + Multiple + + + + + + + \ No newline at end of file diff --git a/ws-sse/multiple/script.js b/ws-sse/multiple/script.js new file mode 100644 index 0000000..1782b0e --- /dev/null +++ b/ws-sse/multiple/script.js @@ -0,0 +1,84 @@ +/* DEFINITIONS */ + +const localhost = true +const sseEnabled = false +const wssEnabled = true + +let wsPort = 3000 +let wsPort2 = 3001 +let wsAddressLocal = "ws://localhost:" +const wsAddressServer = "wss://alpha-ws.clickandjoin.umbach.dev" + +/* DEFINITIONS END */ + +let wsList; + +window.onload = () => { + wsList = document.getElementById("ws-list") + + if (localhost) { + wsAddress = wsAddressLocal + } else { + wsAddress = wsAddressServer + } + + wsClient(wsPort) + wsClient(wsPort2) + wsClient(wsPort) + wsClient(wsPort2) + wsClient(wsPort) + wsClient(wsPort2) +} + +let count = 0 + +function wsClient(wsPort) { + let li = document.createElement("li") + li.id = "client-" + count + li.innerHTML = "Client: " + count + " " + + let sp = document.createElement("span") + sp.id = "client-userid-" + count + + li.appendChild(sp) + + wsList.appendChild(li) + + if (localhost) { + wsAddress = wsAddressLocal + wsPort + } + + let c = count + + ws = new WebSocket(wsAddress + "/?auth=WAZgOGzc-g5VC-zbav-KxCT-bCNlFfQk6ptl") + + ws.onopen = () => { + console.info("ws open " + c) + } + + ws.onmessage = (msg) => { + console.log("rec msg:", msg.data) + + let data = JSON.parse(msg.data) + + // Only used here to test whether messages can be sent between the servers + if (data["Cmd"] == 99999) { + document.getElementById("client-userid-"+c).innerHTML = data["Body"] + } + } + + ws.onclose = (e) => { + console.log("closed", e.reason.code) + if (e.reason.code === 1005) return + + console.log("ws closed", e) + document.getElementById("client-userid-"+c).innerHTML = "" + //setTimeout(() => wsClient(), 100) + } + + ws.onerror = (err) => { + console.warn("err:", err) + } + + count++ +} diff --git a/ws-sse/script.js b/ws-sse/script.js index 7e45aa6..5a09e8a 100644 --- a/ws-sse/script.js +++ b/ws-sse/script.js @@ -115,6 +115,7 @@ function connectWS() { } ws.onclose = (e) => { + console.log("closed", e.reason.code) if (e.reason.code === 1005) return console.log("ws closed", e)