/* DEFINITIONS */ const localhost = true const sseEnabled = false const wssEnabled = true let wsPort = 3000 let wsAddressLocal = "ws://localhost:" const wsAddressServer = "wss://alpha-ws.clickandjoin.umbach.dev" const sseAddressLocal = "http://127.0.0.1:3005/" const sseAddressServer = "https://alpha-sse.clickandjoin.umbach.dev/" /* DEFINITIONS END */ let ws = null let sseAddress, wsAddress = ""; window.onload = () => { if (localhost) { sseAddress = sseAddressLocal wsAddress = wsAddressLocal } else { sseAddress = sseAddressServer wsAddress = wsAddressServer } 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 = () => { wsPort === 3000 ? wsPort = 3001 : 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) } } let auths = [ "WAZgOGzc-g5VC-zbav-KxCT-bCNlFfQk6ptl", "AdZ23xwZ-EhNl-vbbh-I3j3-BlCqsSRYjRM5", "yq2DjCWN-wdtj-pPRx-CAfL-YbfDb113nEIX", "cKagUAi2-y0jf-uWax-kDj5-rMOnwl41TA8l", "hKJrICzW-fgw1-kgUw-k7hG-2de2rroaXEo3", "z8NJ0VOw-U35X-Yl3W-tusq-MbS2coW2eQRi"] function connectWS() { if (!wssEnabled) return let s = parseInt(window.location.search.split("=")[1]) // ?s=NUMBER_OF_PREFERED_WS_SESSION let auth; s == undefined || s > (auths.length - 1) ? auth = auths[0] : auth = auths[s] if (localhost) { wsAddress = wsAddressLocal + wsPort } ws = new WebSocket(wsAddress + "/?auth=" + auth) 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) => { console.log("closed", e.reason.code) 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) } }