首页 > 其他分享 >weosocket 心跳机制

weosocket 心跳机制

时间:2023-06-20 10:34:52浏览次数:24  
标签:console log websocketreconnect self weosocket 心跳 机制 websock

 initWebSocket() {       //初始化weosocket(必须)       // if(!this.createTaskId || !this.headTaskId){       //        return       // }       if (this.protocolHost == "video.chci.cn") {         this.protocolHost = "ts.chci.cn";       }
      const wsuri =         // `wss://${this.protocolHost}/videoUI/dailyTv/channelId/?taskId=` +         // this.headTaskId; //请根据实际项目需要进行修改
        `${process.env.NODE_ENV == "development" ? "ws" : "ws"}://${           this.protocolHost         }/videoUI/comparation/` + this.headTaskId; //请根据实际项目需要进行修改       this.websock = new WebSocket(wsuri); //新建一个webstock对象       this.websock.onmessage = this.websocketonmessage;       this.websock.onopen = this.websocketonopen;       this.websock.onerror = this.websocketonerror;       this.websock.onclose = this.websocketclose;     },     websocketreconnect() {       //重新连接  心跳机制       var that = this;       if (that.lockReconnect) {         return;       }       that.lockReconnect = true;       //没连接上会一直重连,设置延迟避免请求过多       that.timeoutnum && clearTimeout(that.timeoutnum);       that.timeoutnum = setTimeout(function() {         //新连接         if (that.lockReconnect) {           return;         }         console.log("aaa");         that.initWebSocket();       }, 5000);     },     reset() {       //重置心跳       var that = this;       //清除时间       clearTimeout(that.timeoutObj);       clearTimeout(that.serverTimeoutObj);       //重启心跳       that.websocketstart();     },     websocketstart() {       //开启心跳       var self = this;
      self.timeoutObj && clearTimeout(self.timeoutObj);       self.serverTimeoutObj && clearTimeout(self.serverTimeoutObj);       self.timeoutObj = setTimeout(function() {         //这里发送一个心跳,后端收到后,返回一个心跳消息,         if (self.websock.readyState == 1) {           //如果连接正常           self.websock.send("heartCheck"); //这里可以自己跟后端约定         }       }, self.timeout);     },     websocketonopen(e) {       //websocket连接后发送数据(send发送)       console.log("连接成功");       // this.websocketstart();     },     websocketonerror(e) {       //连接建立失败重连       console.log("websocketonerror", e);       //重连       //this.websocketreconnect();     },     websocketonmessage(e) {       //数据接收       var WEBSCOKET = JSON.parse(e.data);       // console.log("疑似结果", WEBSCOKET);       if (WEBSCOKET !== "") {         this.accept(WEBSCOKET);       }       //收到服务器信息,心跳重置       this.reset();     },     websocketsend(Data) {       //数据发送       this.websock.send(Data);     },     websocketclose(e) {       //关闭       let that = this;       // this.websocketreconnect();       if (that.activeStaus == 2) {         console.log("状态威2");         that.websocketreconnect();       }       // if (this.activeStaus == 0) {       //   this.websock.close();       //   return;       //   console.log("关闭", e);       // }       // this.websocketreconnect();     },

标签:console,log,websocketreconnect,self,weosocket,心跳,机制,websock
From: https://www.cnblogs.com/2587jsq/p/17492940.html

相关文章

  • 图解transformer中的自注意力机制
    本文将将介绍注意力的概念从何而来,它是如何工作的以及它的简单的实现。注意力机制在整个注意力过程中,模型会学习了三个权重:查询、键和值。查询、键和值的思想来源于信息检索系统。所以我们先理解数据库查询的思想。假设有一个数据库,里面有所有一些作家和他们的书籍信息。现在......
  • 2023-6-19 #60 心跳沉沉试图召唤着哀伤
    ——泛音堂《破晓将至》每次看到时之歌Project都会觉得惋惜。这场CF是没有tester吗......
  • 事务扩展机制TransactionSynchronization
    事务扩展机制TransactionSynchronization在进行数据库操作的时候,如果需要多个操作要么一起成功,要么一起失败那么就需要使用事务操作了。使用Spring框架只需要在方法上添加 @Transactional 注解这个方法就具有事务特性了。而且Spring也事务操作给开发者提供了很方便的扩展......
  • kotlin 和 r8 的量子纠缠 | 类加载机制偷鸡
    前言戏接上文,kotlin升级没想到啊还有一个大坑。我们之前说了我们使用的agp版本是7.0.3,在这个版本的R8竟然会出现kotlin混淆的bug。断更一个月,不更文的一个原因就是因为最近感觉太菜了,并没有文章素材了。问题排查接下来还是一点点进行问题分析,我们先从kotlin元数据开始讲这个问题。......
  • “自以为对的”MyBatis空闲连接探测的机制
    最近碰到个现象,某个应用,每天在21:00-23:00才会执行,连接数据库执行操作,间隔性出现连接超时的错误,Connectiontimedout(Readfailed)因为应用和数据库是跨网段,咨询了下,防火墙超时时间配置的是30分钟,应用用的MyBatis连接池,相关配置如下,相关参数解释,如下所示,POOLED–这种数据源的实......
  • Appium的三种等待机制
    appium三种等待方式:  (1)强制等待  (2)隐式等待  (3)显式等待 三种等待方式之间的区别: 1、强制等待使用方式:time.sleep()强制执行对应的等待时间后,才能执行下面的操作语句,影响脚本运行的速度,一般不推荐 2、隐式等待使用方式:driver.imolicitly_wait()相对于强制......
  • day 33 反射机制,元类,__new__,__call__,元类下的属性查找
    1,内置方法在满足某种条件下自动触发 2、python是动态,强类型的,解释型语言动态:在程序中定义变量时不需要定义变量的类型,在执行时才知道变量的类型;静态:必须定义好变量的类型。只要是动态语言,就必须有反射机制 解释:一句一句的翻译后执行强类型:3:反射实现反射机制的步骤1、......
  • 关于python反射机制中的参数问题处理
    关于python反射机制中的参数问题处理 python的反射机制十分的常用,主要是字符串与模块应用之间的连接方法。核心是将字符串转换成可以调用模块、模块方法的变量。主要包括了以下四个方法:hasattr(obj,name,/)Returnwhethertheobjecthasanattributewi......
  • 一文搞懂V8引擎的垃圾回收机制
    前言我们平时在写代码的过程中,好像很少需要自己手动进行垃圾回收,那么V8是如何来减少内存占用,从而避免内存溢出而导致程序崩溃的情况的。为了更高效地回收垃圾,V8引入了两个垃圾回收器,它们分别针对不同场景进行工作。垃圾从何而来我们先来搞清楚这些‘垃圾’是怎么产生的不管使用哪一......
  • Java反射机制
    一、Java反射机制是什么?Java 反射机制是Java语言的一个重要特性。在学习Java反射机制前,大家应该先了解编译期和运行期两个概念:编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在Java中也就是把Java代码编成class文件的过程。编译期只是做了一些翻译功能,......