通信方法及装置、电子设备及介质制造方法及图纸

技术编号:28565123 阅读:27 留言:0更新日期:2021-05-25 18:01
本发明专利技术提供一种通信方法及装置、电子设备及介质,通过设置中间件在启动后建立客户端与服务器的通讯通道;客户端通过所述通讯通道发送心跳消息到所述服务器;服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送,可靠性高,易于优化使用。

【技术实现步骤摘要】
通信方法及装置、电子设备及介质
本专利技术涉及通信
,尤其涉及一种通信方法及装置、电子设备及介质。
技术介绍
现在一些做C/S(客户端/服务器)架构的即时通讯软件对于客户端和服务器之前的中间件尤其是网络通道的实现越来越重视,一些传统的网络通道大都采用TCP和UDP协议传输,存在可靠性和长连接和短链接及传输效率问题。因此,如何提供一种通信方案,可靠性高,易于优化使用是本领域技术人员亟待解决的技术问题。
技术实现思路
本专利技术提供一种通信方法及装置、电子设备及介质,可靠性高,易于优化使用。第一方面,本专利技术提供一种通信方法,包括:中间件在启动后建立客户端与服务器的通讯通道;所述客户端通过所述通讯通道发送心跳消息到所述服务器;所述服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送。进一步地,还包括:所述中间件基于异常网络条件以及所述心跳信息判断当前网络状态;若确定当前网络状态正常,则将当前网络状态正常的第一信息发送到所述客户端以及所述服务器;所述服务器在接收到所述第一信息后向所述客户端进行数据推送。进一步地,在所述中间件基于异常网络条件以及所述心跳信息判断当前网络状态之后,还包括:若确定当前网络状态异常,则启动超时状态机进行网络修复,直到达到预设修复次数。进一步地,所述超时状态机包括以下至少一种状态:准备期、探测期以及稳定期;当处于所述准备期时,连续成功N次切换到探测期,每次都增加时间间隔,鲁棒控制增加B秒,若当前探测时间大于最大时间间隔maxHbtime,则探测时间取最大时间间隔;当处于所述探测期时,连续成功M次切换到稳定期,每次都增加时间间隔,鲁棒控制增加B秒,若当前探测时间大于最大时间间隔maxHbtime,则探测时间取最大时间间隔;当处于所述稳定期时,失败M次切换到探测期,每次都缩短探测时间,鲁棒控制减少A秒,若当前探测时间小于最小时间间隔minHbtime,则探测时间取最小时间间隔;当处于所述探测期时,连续失败N次就切换到准备期,每次都缩短探测时间,鲁棒控制减少A秒,若当前探测时间小于最小时间间隔minHbtime,则探测时间取最小时间间隔;其中,A、B、M以及N均为正整数。进一步地,所述中间件基于异常网络条件以及所述心跳信息判断当前网络状态包括:若相邻两次心跳信息的接收时间间隔超过预设时间间隔,则确定当前网络状态异常;若相邻两次心跳信息的接收时间间隔为超过预设时间间隔,则确定当前网络状态正常;若超过预设时间为接收到心跳信号,则确定当前网络状态异常。进一步地,还包括:在进入超时状态机机制进行网络修复达到预设修复次数后,所述中间件丢弃原有的通讯通道,并重新建立新的通讯通道。进一步地,所述服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送包括:服务器在收到心跳消息后,将需要推送的消息通过通道推送给通讯通道的通道线程;通道线程在通过thrift的TDispatchProcessor分发服务,分发给对应的客户端接口;将数据传给接口中的客户端回调函数以实现服务器端到客户端的数据推送。第二方面,本专利技术提供一种通信装置,包括:中间件,用于在启动后建立客户端与服务器的通讯通道;客户端,用于通过所述通讯通道发送心跳消息到所述服务器;服务器,用于在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送。第三方面,本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述通信方法的步骤。第四方面,本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述通信方法的步骤。本专利技术提供的一种通信方法及装置、电子设备及介质,通过设置中间件在启动后建立客户端与服务器的通讯通道;客户端通过所述通讯通道发送心跳消息到所述服务器;服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送,可靠性高,易于优化使用。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种通信方法的流程图之一;图2为本专利技术实施例提供的一种通信方法的超时状态机示意图;图3为本专利技术实施例提供的一种通信方法的流程图至二;图4为本专利技术实施例提供的一种通信方法的流程图至三;图5为本专利技术实施例提供的一种通信方法的TDispatchProcessor分发机制流程图;图6为本专利技术又一实施例提供的一种通信方法的客户端与服务器端交互示意图;图7为本专利技术又一实施例提供的一种通信方法的客户端与服务器端交互流程图;图8为本专利技术实施例提供的一种通信装置的组成结构示意图;图9为本专利技术提供的电子设备的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面结合图1-图5描述本专利技术的通信方法。图1为本专利技术实施例提供的一种通信方法的流程图之一;图2为本专利技术实施例提供的一种通信方法的超时状态机示意图;图3为本专利技术实施例提供的一种通信方法的流程图至二;图4为本专利技术实施例提供的一种通信方法的流程图至三;图5为本专利技术实施例提供的一种通信方法的TDispatchProcessor分发机制流程图。在本专利技术的一种具体实施方式中,本专利技术实施例提供一种通信方法,包括:步骤110:中间件在启动后建立客户端与服务器的通讯通道;在本专利技术实施例中,客户端首先需要登录中间件,中间件启动后开始建立通讯通道,初始化thrift协议,初始化心跳对象也就是服务器,设置超时时间等,也就是说自动启动该通道,实现客户端和服务器的互联互通,并且需要设置一些参数,例如根据客户端发送的心跳消息计算初始心跳间隔,利用历史的失败次数或者用户输入的失败次数来,并且设置接收超时。步骤120:所述客户端通过所述通讯通道发送心跳消息到所述服务器;在通讯通道初始化完成后,客户端开始循环每隔预设时间发送心跳消息,此时中间件可以判断客户端与服务器是否正常通信,具体地,可以根据心跳消息是否连续,如果存在断断续续的心跳信号,则说明此时客户端与服务器端的通信连接处于弱网络状态,如果服务器接收不到心跳信号则说明处于本文档来自技高网...

【技术保护点】
1.一种通信方法,其特征在于,包括:/n中间件在启动后建立客户端与服务器的通讯通道;/n所述客户端通过所述通讯通道发送心跳消息到所述服务器;/n所述服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送。/n

【技术特征摘要】
1.一种通信方法,其特征在于,包括:
中间件在启动后建立客户端与服务器的通讯通道;
所述客户端通过所述通讯通道发送心跳消息到所述服务器;
所述服务器在接收到心跳消息后通过所述通讯通道向所述客户端进行数据推送。


2.根据权利要求1所述的通信方法,其特征在于,还包括:
所述中间件基于异常网络条件以及所述心跳信息判断当前网络状态;
若确定当前网络状态正常,则将当前网络状态正常的第一信息发送到所述客户端以及所述服务器;
所述服务器在接收到所述第一信息后向所述客户端进行数据推送。


3.根据权利要求2所述的通信方法,其特征在于,在所述中间件基于异常网络条件以及所述心跳信息判断当前网络状态之后,还包括:
若确定当前网络状态异常,则启动超时状态机进行网络修复,直到达到预设修复次数。


4.根据权利要求3所述的通信方法,其特征在于,
所述超时状态机包括以下至少一种状态:准备期、探测期以及稳定期;
当处于所述准备期时,连续成功N次切换到探测期,每次都增加时间间隔,鲁棒控制增加B秒,若当前探测时间大于最大时间间隔maxHbtime,则探测时间取最大时间间隔;
当处于所述探测期时,连续成功M次切换到稳定期,每次都增加时间间隔,鲁棒控制增加B秒,若当前探测时间大于最大时间间隔maxHbtime,则探测时间取最大时间间隔;
当处于所述稳定期时,失败M次切换到探测期,每次都缩短探测时间,鲁棒控制减少A秒,若当前探测时间小于最小时间间隔minHbtime,则探测时间取最小时间间隔;
当处于所述探测期时,连续失败N次就切换到准备期,每次都缩短探测时间,鲁棒控制减少A秒,若当前探测时间小于最小时间间隔minHbtime,则探测时间取最小时间间隔;
其中,A、B、M以及N均为正整...

【专利技术属性】
技术研发人员:林皓高曦喻刚梁洪飞顾德仲
申请(专利权)人:北京北信源软件股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1