客户端和服务器之间的会话保活方法、客户端和介质与流程
- 国知局
- 2024-11-06 14:25:45
本发明涉及客户端和服务器通信的网络,尤其涉及一种客户端和服务器之间的会话保活方法,以及相应的客户端、计算机可读介质和计算机设备。
背景技术:
1、涉及到网络通信的应用程序,不可避免地要考虑网络的稳定性及通信质量,通信质量是指在网络通信过程中数据传输的稳定性、速度、延迟和丢包率等方面的表现,通信质量的好坏直接影响到用户的网络体验和服务质量。通信质量受到多种因素的影响,包括但不限于网络拥堵、带宽限制、信号干扰、抖动、丢包、延迟等。例如在视频会议这种业务场景中,客户端与服务器之间建立视频会议的业务会话之后,需要维持该业务会话的有效性,尽量减少网络短时中断、抖动等因素对业务会话稳定性的影响。
2、对于远程异地的多方视频会议业务场景,当客户端与服务器之间通过公共网络来进行通信时,公共网络中网络设备的陈旧程度、故障率等不利因素难以预测,以及寻址定位路径选择的随机性,因此公共网络的连接稳定性较低,通信质量往往得不到保障,更容易出现网络抖动、短时间内数据包拥塞导致丢包或者延时到达的现象。运行所述客户端的终端,其接入网络方式也难以统一,例如有线、wifi、4g、5g等方式,各种接入方式导致通信质量差别较大,健壮性也难以保证。
3、为了维持客户端和服务器之间的会话的有效性,通常会为客户端与服务器之间的通信配置合适的心跳机制,一种典型的心跳机制是配置客户端定时向服务器发送一个表明客户端依然在线的心跳数据包,服务器在收到该心跳数据包之后就可知客户端依然处于会话进行中,以避免服务器端误判断客户端已经离线,从而断开和释放与客户端的会话。心跳机制是客户端和服务器之间的会话保活的一个重要手段。
4、然而,在会话中存在大量实时多媒体数据和交互指令的应用场景中,尤其是在视频会议这种业务场景中,由于客户端和服务器之间的网络质量难以预测,目前的心跳机制难以满足在各种网络状态下均有效维持客户端与服务器的会话。例如在高丢包率的弱网中,服务器可能会因丢包而无法及时接收到心跳数据包,导致会话保活失败,这一现象在使用重传策略保守的网络通信协议来实现心跳机制时更为明显。即便在连接性能较好的专用网络中,心跳数据包往往和大量的媒体数据包并发产生,受限于带宽等有限传输资源的制约,心跳数据包也有可能被阻塞。一旦客户端和服务器的会话被迫中断,会极大地影响用户体验和沟通效率。
技术实现思路
1、为了克服现有技术中的上述缺陷,本发明提供了一种客户端和服务器之间的会话保活方法,该方法包括:
2、所述客户端和所述服务器之间建立会话后,所述客户端配置为以预设心跳时长为周期,使用第一网络通信协议或第二网络通信协议向所述服务器持续发送心跳数据包;
3、以所述心跳数据包发出时刻为起始时间戳开始计时,所述客户端判断是否在第一超时时长内收到所述服务器的心跳回应数据;
4、若在所述第一超时时长内未收到所述服务器的心跳回应数据,触发所述客户端以增量心跳时长为周期,使用第二网络通信协议向所述服务器持续发送增量心跳数据包,所述增量心跳时长小于所述预设心跳时长,所述第二网络通信协议的数据传输速度大于所述第一网络通信协议的数据传输速度,和/或所述第二网络通信协议的数据包复杂度小于所述第一网络通信协议的数据包复杂度;
5、以所述心跳数据包发出时刻为起始时间戳开始计时,所述客户端判断是否在在第二超时时长内收到所述服务器的心跳回应数据,所述第二超时时长大于所述第一超时时长;
6、若在所述第二超时时长内未收到所述服务器的心跳回应数据,触发所述客户端重新与所述服务器建立连接。
7、根据本发明的一个方面,在发送所述心跳数据包之后,该方法还包括:所述客户端接收所述服务器发送的业务数据包,并使用所述业务数据包的接收时刻替换所述发出时刻,以更新所述起始时间戳。
8、根据本发明的另一个方面,该方法中所述心跳数据包内包括同步信息,所述同步信息用于所述服务器校验所述客户端调用的硬件设备的状态,和/或用于向所述服务器同步所述客户端的业务状态。
9、根据本发明的另一个方面,在发送所述增量心跳数据包之后,该方法还包括:以所述增量心跳数据包发出时刻为初始时间戳开始计时,所述客户端判断是否在第三超时时长内收到所述服务器的心跳回应数据,所述第三超时时长小于所述第一超时时长;若所述判断的结果为是,触发所述客户端停止向所述服务器发送所述增量心跳数据包。
10、根据本发明的另一个方面,该方法中所述预设心跳时长为n秒,所述增量心跳时长为n/10秒,所述第一超时时长为5n秒,所述第二超时时长为10n秒,所述第三超时时长为2n秒。
11、根据本发明的另一个方面,该方法中所述第一网络通信协议是tcp,所述第二网络通信协议是udp。
12、根据本发明的另一个方面,该方法中所述会话是用于传输实时多媒体数据和进行实时指令交互的业务会话;所述服务器是信令服务器。
13、根据本发明的另一个方面,该方法中所述业务会话是视频会议业务会话。
14、相应地,本发明还提供了一种客户端,该客户端包括:
15、心跳模块,用于在所述客户端和服务器之间建立会话后,以预设心跳时长为周期,使用第一网络通信协议或第二网络通信协议向所述服务器持续发送心跳数据包;
16、第一判断模块,用于以所述心跳数据包发出时刻为起始时间戳开始计时,判断是否在第一超时时长内收到所述服务器的心跳回应数据;
17、增量心跳模块,用于在所述第一判断模块的判断结果为否时,以增量心跳时长为周期,使用第二网络通信协议向所述服务器持续发送增量心跳数据包,所述增量心跳时长小于所述预设心跳时长,所述第二网络通信协议的数据传输速度大于所述第一网络通信协议的数据传输速度,和/或所述第二网络通信协议的数据包复杂度小于所述第一网络通信协议的数据包复杂度;
18、第二判断模块,用于以所述心跳数据包发出时刻为起始时间戳开始计时,判断是否在在第二超时时长内收到所述服务器的心跳回应数据,所述第二超时时长大于所述第一超时时长;
19、重连模块,用于在所述第二判断模块的判断结果为否时,重新与所述服务器建立连接。
20、根据本发明的一个方面,该客户端还包括:更新模块,用于在所述心跳模块发送所述心跳数据包之后,接收所述服务器发送的业务数据包,并使用所述业务数据包的接收时刻替换所述发出时刻,以更新所述起始时间戳。
21、根据本发明的另一个方面,该客户端中所述心跳数据包内包括同步信息,所述同步信息用于所述服务器校验所述客户端调用的硬件设备的状态,和/或用于向所述服务器同步所述客户端的业务状态。
22、根据本发明的另一个方面,该客户端还包括:第三判断模块,用于在所述增量心跳模块发送所述增量心跳数据包之后,以所述增量心跳数据包发出时刻为初始时间戳开始计时,判断是否在第三超时时长内收到所述服务器的心跳回应数据,所述第三超时时长小于所述第一超时时长,若所述判断的结果为是,触发所述增量心跳模块停止向所述服务器发送所述增量心跳数据包。
23、根据本发明的另一个方面,该客户端中所述预设心跳时长为n秒,所述增量心跳时长为n/10秒,所述第一超时时长为5n秒,所述第二超时时长为10n秒,所述第三超时时长为2n秒。
24、根据本发明的另一个方面,该客户端中所述第一网络通信协议是tcp,所述第二网络通信协议是udp。
25、根据本发明的另一个方面,该客户端中所述会话是用于传输实时多媒体数据和进行实时指令交互的业务会话;所述服务器是信令服务器。
26、根据本发明的另一个方面,该客户端中所述业务会话是视频会议业务会话。
27、此外,本发明提供了一个或多个存储计算机可执行指令的计算机可读介质,所述指令在由一个或多个计算机设备使用时使得一个或多个计算机设备执行如前文所述的基于同态加密的客户端和服务器之间的会话保活方法。
28、本发明还提供了一种计算机设备,所述计算机设备包括存储器和处理器,其中所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如前文所述的客户端和服务器之间的会话保活方法。
29、本发明提供的客户端和服务器之间的会话保活方法,在心跳机制中引入了发送频率更高的增量心跳数据包,使得心跳机制可以更好地适应客户端和服务器之间复杂的网络质量状况,尤其是在视频会议何种业务场景中,对于不同网络接入方式导致的网络短时终端、抖动,有效减少客户端与服务器之间的会话异常中断情况,进而提升了用户体验和沟通效率。
本文地址:https://www.jishuxx.com/zhuanli/20241106/322024.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表