websocket 封装(含心跳,重连机制,强制退出)

websocket 封装(含心跳,重连机制,强制退出)/** * @param {JSON} json 连接建立立即发送,如果想不发送就传' ', * @param {String} url * @param {Function} callback 接收服务端数据时触发的回调 * @param {Object} protocol 第二个参数 protocol 是可选的,指定了可接受的子协议。 */const WS = function (json, url, callback, pr
摘要由CSDN通过智能技术生成

websocket 封装(含心跳,重连机制,强制退出)

/**
 * @param {JSON} json  连接建立立即发送,如果想不发送就传' ',
 * @param {String} url  
 * @param {Function} callback 接收服务端数据时触发的回调
 * @param {Object} protocol  第二个参数 protocol 是可选的,指定了可接受的子协议。
 */

const WS = function (json, url, callback, protocol) {
   
  this.json = json;
  this.url = url;
  this.protocol = typeof (protocol) == 'undefined' ? null : protocol || ''
  this.reconnect_time = 0; //重连的时间
  this.reconnect_count = 0; //重连次数
  this.is_destroy = false //强制关闭
  this.is_reconnect = false;  // 是否重连过
  this.last_health_time = -1; //上一次心跳时间
  this.keep_alive_timer; //心跳定时发送
  this.reconnect_timer; // 重连操作
  this.socket; //socket对象
  this.initWs();

  this.onopen = e => {
   
    if (this.socket) {
   
      this.socket.send(json);
      this.reconnect_count = 0; //重连上把重连次数清空
      this.reconnect_time = 0; //重连的时间清空
      if (this.socket.readyState === 1) {
   
        //保持心跳函数 30s发送一次
        this.keep_alive_timer = setInterval(()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值