话不多说 直接看代码
<script setup lang="ts">
onMounted(() => {
createWebSocket()
init()
if (heartConnet.value) clearInterval(heartConnet.value)
heartConnet.value = setInterval(() => {
createWebSocket()
init()
}, 60000)
})
function createWebSocket() {
try {
socket = new WebSocket(
`ws://${location.host}/wsUrl/myHandler/`
)
} catch (e) {
reconnect()
}
}
var socket: any = null
let heartConnet: any = ref(null)
let lockReconnect = false
let tt: any = null
function init() {
socket.onclose = () => {
createWebSocket()
}
socket.onerror = (_error: any) => {
createWebSocket()
}
socket.onopen = () => {
console.log('websocket open')
}
socket.onmessage = (_event: any) => {
let res = JSON.parse(_event.data)
}
}
}
function reconnect() {
if (lockReconnect) {
return
}
lockReconnect = true
tt && clearTimeout(tt)
tt = setTimeout(function () {
createWebSocket()
lockReconnect = false
}, 2000)
}
</script>