前端webscoket完成心跳
项目里面需要用到心跳功能,第一版使用延时器写的,发现并不能准时请求,于是用socket代替了,代码如下:
setHeartWs(){
// 因为传值用到了token,就这么取值了,不用可以去掉
console.log(this.tokenService.getPayload());
const token_:any = this.tokenService.getPayload();
let message = `${token_.userId}_${token_.clientIp}`;
let lockReconnect = false; // 避免重复连接
// 根据当前协议类型区分是ws还是wss
let protocol: any;
if (window.location.protocol === 'http:') {
protocol = window.location.protocol.replace('http', 'ws');
} else if (window.location.protocol === 'https:') {
protocol = window.location.protocol.replace('https', 'wss');
}
const host = window.location.host;
// 这是后台接口路径
const path = 'ping';
let ws:WebSocket;
// 定时器number
let tt = 0;
// 创建ws
function creatWs(){
t