let socket;
let wsUrl='ws://localhost:8080/webSocket'
let lockReconnect = false
let maxReconnect = 5
const webSocket = {
initWebSocket(){
try {
if ('WebSocket' in window) {
socket = new WebSocket(wsUrl)
} else {
console.log('您的浏览器不支持websocket')
}
socket.onopen = this.onOpen
socket.onerror = this.onError
socket.onmessage = this.onMessage
socket.onclose = this.onClose
} catch (e) {
webSocket.reconnect()
}
},
onOpen(){
console.log('socket连接成功')
lockReconnect = true
},
onMessage(e){
const data = JSON.parse(e.data)
console.log('socketMsg',data)
},
onError(){
console.log('socket发生一个错误')
lockReconnect = true
},
onClose(){
console.log('socket连接关闭')
},
send(data) {
socket.send(JSON.stringify(data))
},
close(){
socket.close()
lockReconnect = false
},
reconnect() {
console.log('尝试重连:' + maxReconnect)
if (lockReconnect || maxReconnect <= 0) {
return
}
setTimeout(() => {
maxReconnect--
webSocket.initWebSocket()
}, 60 * 1000)
},
}
export default {socket,webSocket}