function newWebSocket(option) {
console.log('new webSocket.....')
let websocket = null
if (window.WebSocket) {
if (!websocket) {
websocket = new WebSocket('你的请求地址')
}
} else {
console.log('not support websocket')
}
websocket.onopen = function(e) {
heartCheck.reset().start()
console.log('connected successfully')
}
websocket.onerror = function() {
console.log(`onerror`)
newWebSocket()
}
websocket.onmessage = function(e) {
console.log('onmessage', e.data)
var message = e.data
if (message) {
if (option != undefined) {
option.onmessage(message)
}
}
}
websocket.onclose = function() {
console.log('onclose')
}
window.onbeforeunload = () => {
return websocket.close()
}
var heartCheck = {
timeout: 100000,
serverTimeoutObj: null,
reset: function() {
clearTimeout(this.serverTimeoutObj)
return this
},
start: function() {
this.serverTimeoutObj = window.setInterval(() => {
if (websocket.readyState === 1) {
websocket.send('ping')
} else {
console.log('websocket stop', websocket.readyState)
window.clearTimeout(this.serverTimeoutObj)
newWebSocket(option)
}
}, this.timeout)
}
}
return websocket
}