diff --git a/picture-upload.html b/picture-upload/picture-upload.html similarity index 100% rename from picture-upload.html rename to picture-upload/picture-upload.html diff --git a/wss-sse/index.html b/wss-sse/index.html new file mode 100644 index 0000000..7243eae --- /dev/null +++ b/wss-sse/index.html @@ -0,0 +1,32 @@ + + + + + + + CnJ + + + +

WS:

+

UserID:

+ +
+ + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/wss-sse/script.js b/wss-sse/script.js new file mode 100644 index 0000000..8323baa --- /dev/null +++ b/wss-sse/script.js @@ -0,0 +1,101 @@ +let ws = null + +let wsPort = 3000 +let wsAddress = "ws://localhost:" +//let wsAddress = "wss://alpha-ws.clickandjoin.umbach.dev" + +let sseAddress = "http://127.0.0.1:3005/" +//let sseAddress = "https://alpha-sse.clickandjoin.umbach.dev/" + +const sseEnabled = false +const wssEnabled = true + +window.onload = () => { + const msg = document.getElementById("msg") + const receiver = document.getElementById("receiver") + + document.getElementById("btn-send").onclick = function() { + const chatMsg = {cmd: 2, rec: receiver.value, body: {msg: {"id": "1293", "body": msg.value}}} + + ws.send(JSON.stringify(chatMsg)) + + console.log("Send:", chatMsg, msg.value) + } + + document.getElementById("btn-clear").onclick = () => { + msg.value = "" + } + + document.getElementById("copy-userid").onclick = () => { + navigator.clipboard.writeText(document.getElementById("userid").innerHTML) + console.log("copied to clipboard") + } + + document.getElementById("btn-clear-rec").onclick = () => { + document.getElementById("receiver").value = "" + } + + document.getElementById("change-ws").onclick = () => { + if (wsPort === 3000) { + wsPort = 3001 + } else { + wsPort = 3000 + } + + if (ws.readyState == 1) { + ws.close() + } + } + + connectWS() + connectSSE() +} + +function connectSSE() { + if (!sseEnabled) return + + var source = new EventSource(sseAddress) + + source.onmessage = (e) => { + console.log(e.data) + + let obj = JSON.parse(e.data) + + console.log(obj.Body) + } +} + +function connectWS() { + if (!wssEnabled) return + + ws = new WebSocket(wsAddress + wsPort + "/?auth=sMURqnQt-88Ko-SaWu-2GLr-K2iQECXDyONm") + + ws.onopen = () => { + console.info("ws open", document.getElementById("userid")) + document.getElementById("ws").innerHTML = ws.url + } + + 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("userid").innerHTML = data["Body"] + } + } + + ws.onclose = (e) => { + if (e.reason.code === 1005) return + + console.log("ws closed", e) + document.getElementById("userid").innerHTML = "" + setTimeout(() => connectWS(), 100) + } + + ws.onerror = (err) => { + console.warn("err:", err) + } +} +