/**
* websocket 類
** **方法和原生websocket保持一致
* @param url 連線位址
* @param isreconnect 是否包含重連機制
* @param options 配置引數
* **/
class ws )
this.opt =
this.lockreconnect = false // 重連鎖,避免頻繁重連
this.isclose = false
this.onopen = () => {} // 建立開啟連線**
this.onmessage = () => {} // 收到訊息通知的**
this.onclose = () => {} // 關閉連線的**
this.onerror = () => {} // 連線錯誤**
this.timeoutobj = null // 心跳檢測計時器
this.intervalobj = null // 定時傳送計時器
this.reconnecttimer = null // 避免重連鎖
this.createws()
} else
} else
}// 建立ws
createws()
this.ws = new websocket(this.opt.url)
this.isclose = false
this.setwsdata()
this.ws.onopen = () =>
this.onopen()
}this.ws.onmessage = (data) => else
}this.ws.onclose = () =>
this.ws.onerror = () =>
}// 設定ws引數
setwsdata() else
}// 傳送訊息
send(data)
// 關閉連線
close()
// 清除定時器
cleartimer()
if (this.timeoutobj)
if (this.intervalobj)
}// 開啟心跳
start() , this.opt.timeout)
return this
}// 重置心跳
reset()
// 重連
reconnect()
if (this.lockreconnect) return
this.lockreconnect = true
if (this.reconnecttimer) cleartimeout(this.reconnecttimer)
this.reconnecttimer = settimeout(() => , this.opt.reconnectstep)
return this
}// ping
ping() else
} catch (e)
}}, this.opt.intervalstep)}}
}
websocket 斷線重連
摘要websocket reconnect websocket是html5發布之後出現的一種新技術,說它是新技術,其實也不是多新的技術了,因為畢竟也有2 3年了,但是找了很多國內的例項,缺發現不多,不知道是它不好用呢,還是說這種技術原來就有缺陷呢,咱們暫且不說,今天我們就來介紹一下websocket...
Websocket心跳重連
websocket心跳重連 最近的工作業務上有用到關於websocket的相關知識,本來打算用socket.io去完成,但是最後還是採用了自帶的websocket的方式完成需求 this.websocket.binarytype arraybuffer 現在想象一下有這麼乙個場景,如果網路狀態不佳,...
websocket 心跳重連
websocket是什麼 websocket作用是來做訊息的實時推送 websocket的基本事件有onopen onmessage onerror onclose這四個事件,onopen是連線已開啟,且可以通訊,onmessage是收到訊息,onerror是websocket發生錯誤,onclos...