79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
let ws = null
|
|
|
|
let wsAddress = "ws://localhost:"
|
|
let wsPort = 3000
|
|
|
|
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()
|
|
}
|
|
|
|
|
|
|
|
function connectWS() {
|
|
ws = new WebSocket(wsAddress + wsPort)
|
|
|
|
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)
|
|
|
|
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)
|
|
}
|
|
}
|
|
|