140 lines
3.5 KiB
JavaScript
140 lines
3.5 KiB
JavaScript
/* 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")
|
|
const messageReceiver = document.getElementById("message-receiver")
|
|
const cmd = document.getElementById("cmd")
|
|
|
|
cmd.value = 2
|
|
|
|
document.getElementById("btn-send").onclick = function() {
|
|
const chatMsg = {cmd: parseInt(cmd.value), body: {test: msg.value}}
|
|
|
|
messageReceiver.value == "user" ? chatMsg.rec_user = receiver.value : chatMsg.rec_room = receiver.value
|
|
|
|
console.log("messageReceiver", messageReceiver.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 = () => {
|
|
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)
|
|
}
|
|
}
|
|
|