uni-app中websocket的使用 断开重连、心跳机制

uni-app中websocket的使用 断开重连、心跳机制,第1张

最近关于H5和APP的开发中使用到了webSocket,由于web/app有时候会出现网络不稳定或者服务端主动断开,这时候导致消息推送不了的情况,需要客户端进行重连。查阅资料后发现了一个心跳机制,也就是客户端间隔一段时间就向服务器发送一条消息,如果服务器收到消息就回复一条信息过来,如果一定时间内没有回复,则表示已经与服务器断开连接了,这个时候就需要进行重连。

被动断开则进行重连,主动断开的不重连。

说明:下图针对两个Tab项(Open Trades 和 Closed Trades),只希望在 tabIndex = 0 (Open Trades 高亮时)触发webSocket , 如果点击第二个栏目 , tabIndex = 1(Closed Trades高亮时)则主动关闭webSodket连接。

TabIndex = 0 时 ,被动断开则自动重连

原文链接: uni-app中websocket的使用 断开重连、心跳机制

如果在使用中遇到什么问题 ,可以给我 留言 ,看到留言后会在第一时间进行回复 。

平时在命令行下ssh连接了远程服务器,经常才几分钟没 *** 作就被自动断线了,不能进行任何 *** 作,其实这是因为ssh没有设置心跳检测,可以通过以下两种方法解决。

1、依赖ssh客户端定时发送心跳检测,配置/etc/ssh/ssh_config文件,在末尾添加上,
ServerAliveInterval 20
ServerAliveCountMax 999

每隔20秒向服务器发出一次心跳检测,若超过999次请求都没有成功,就主动断开与服务器端的连接。

2、依赖ssh服务器端定时发送心跳检测,配置/etc/ssh/sshd_config文件(注意:这里是sshd_config,不是ssh_config),在末尾添加上,
ClientAliveInterval 30
ClientAliveCountMax 6

每隔30秒向客户端发出一次心跳检测,若超过6次请求都没有成功,就会主动断开与客户端的连接。

3、设置了ssh的心跳检测后,重启ssh服务才能生效,执行命令

心跳服务器主要准确检测用户的上下线时间,统计用户的上网时长,生成计费信息,以及在各种异常情况发生时,通过一系列的异常检测方法与控制机制,也能准确的实现计费。认证计费系统基于B/S结构,用户端无需安装客户端软件,用户的上网信息通过Web认证页面中的插件与心跳服务器通信完成。用户上网时出现的一些异常状况,通过心跳服务器与业务维护服务器通信完成。用户登录Web服务器认证通过后,用户端的Web插件(在Web登录认证成功后的链接保持的页面中运行)开始联系心跳服务器,向心跳服务器发送请求开始计费的信息,心跳服务器收到插件的计费请求的信息后,对该用户开始进行计费,如果插件不能联系上心跳服务器,则会认证计费系统出现异常,不能正常计费,插件会释放用户的合法IP地址,用户将不能上网;用户正常上网后,在用户在线期间,间隔每个心跳周期(比如三分钟)插件向心跳服务器发送心跳信息,表示用户在线;当用户下线时,插件向心跳服务器发送计费结束的信息,完成一个完整的计费流程。当用户的费用用完时,心跳服务器主动下发消息给插件,通知用户费用已用完,命令插件释放用户合法上网的IP地址,同时将用户的信息发送给业务维护服务器,业务维护服务器通过 *** 作网络设备(CMTS和Cable Modem),让用户离线。

心跳是用于判断是否掉线的 只要连着的时候就会持续每隔一小会发一个心跳包,服务器如果多久没收到就判断你已经掉线了 之所以需要心跳包而不直接判断socket的联通状态,是因为在网络上有大量的连接缓存设备(比如电信局的交换机,比如一些硬件防火墙),这些设备会保存连接一段时间(几秒到十几分钟都有)举个例子 A客户端连接着B服务器 实际上是 A->中间的网络设备C->B如果A掉线了,实际上可能是A到C断了,也可能是C到B断了, 如果是A到C断了, 实际上B是无法知道的,因为对B来说A的连接(就是C)还连着 心跳机制就解决了这个问题

电脑蓝屏了软件肯定都被关闭了,QQ也就退出了。
蓝屏的原因往往集中在不兼容的硬件和驱动程序、有问题的软件、病毒等。解决办法:
1、病毒的原因。使用电脑管家杀毒。
2、 内存的原因。用橡皮擦把内存条的金手指擦拭一下,把氧化层擦掉,确保内存条安装、运行正常。
3、 机箱不清洁CPU风扇积灰太多不能正常运行,造成CPU温度过高,用毛刷、电吹风将机箱内壁、CPU风扇、显卡风扇、主板上的积灰都清理一遍。

心跳网络。服务器组机器之间私网
一般存在于服务器集群、多机并行时用的。
是服务器组各个机器之间传递信息用的。
比如故障转移集群服务器的心跳。集群网络是对外正常工作通讯的,心跳网络就是A\B机之间传递信息,相互验证对方是否还在正常运行用的。比如平时是A机在运行服务,A、B机之间会每隔一段时间通过心跳网询问对方是否还正常,如果A服务器宕机了,B得不到回应,就行把集群资源拿过来继续运行服务。

简单地说是为了证明客户端和服务器还活着。websocket 在使用过程中,如果遭遇网络问题等,这个时候服务端没有触发 onclose 事件,这样会产生多余的连接,并且服务端会继续发送消息给客户端,造成数据丢失。因此需要一种机制来检测客户端和服务端是否处于正常连接的状态,心跳检测和重连截止就产生了。

思路是


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10631038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存