一种保持心跳连接的方法与网关及聊天服务器的制造方法

文档序号:10572558阅读:243来源:国知局
一种保持心跳连接的方法与网关及聊天服务器的制造方法
【专利摘要】本发明公开了一种保持心跳连接的方法,包括:网关服务器接收接入该网关服务器的客户端所发送的心跳消息;当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;网关服务器接收聊天室服务器返回的心跳应答数据包;网关服务器解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。网关服务器与聊天服务器之间、聊天服务器与状态服务器之间均无需针对客户端发送的每一个心路消息进行在线状态维护,而在通过将一定数量的心跳消息或一定时间段内的心跳消息打包发送从而维护客户端的在线状态,减轻了各服务器处理心跳消息的压力。
【专利说明】
一种保持心跳连接的方法与网关及聊天服务器
技术领域
[0001 ]本发明属于网络通信技术领域,更具体地,涉及一种保持心跳连接的方法与网关及聊天服务器。
【背景技术】
[0002]随着互联网应用的发展,网络在线通讯的应用越来越多。例如大多数的网络在线通讯应用就是建立在TCP长连接服务上的,为管理这些长连接,保证及时销毁无用的连接以释放资源服务于有需的用户,网络在线通讯应用的后台服务器需要与客户端保持心跳。具体说来,客户端每隔一段时间(例如设置为45秒)需向后台服务器发送一条心跳消息以保证客户端与后台服务器之间的对应连接的后续可用性。
[0003]当接入的客户端数量达到一定的数量级时(例如20W左右),这么多的客户端与后台服务器之间的心跳消息会达到一个很大的数量级,后台服务器需要消耗大量的资源去处理这些心跳消息,以至于后台服务器的性能大打折扣。

【发明内容】

[0004]针对现有技术的以上缺陷或改进需求,本发明提供了一种保持心跳连接的方法与网关及聊天服务器,其目的在于降低客户端与后台服务器之间发送心跳消息的频率,由此解决在线客户端太多时心跳消息过量导致后台服务器处理心跳消息压力太大的问题。
[0005]为实现上述目的,按照本发明的一个方面,提供了一种保持心跳连接的方法,包括:
[0006]网关服务器接收接入该网关服务器的客户端所发送的心跳消息;
[0007]当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;
[0008]网关服务器接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
[0009]网关服务器解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
[0010]按照本发明的另一方面,提供了一种保持心跳连接的方法,包括:
[0011]聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
[0012]聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息;并根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
[0013]聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
[0014]聊天室服务器将所述心跳应答数据包发送给所述网关服务器。。
[0015]按照本发明的另一方面,还提供了一种网关服务器,包括心跳消息接收模块、心跳数据包发送模块、心跳应答数据包接收模块以及心跳应答消息发送模块,其中:
[0016]所述心跳消息接收模块,用于接收接入该网关服务器的客户端所发送的心跳消息;
[0017]所述心跳数据包发送模块,用于在满足预设条件时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;
[0018]所述心跳应答数据包接收模块,用于接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
[0019]所述心跳应答消息发送模块,用于解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
[0020]按照本发明的另一方面,还提供了一种聊天服务器,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块以及心跳应答数据包发送模块,其中:
[0021]所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
[0022]所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息;
[0023]所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
[0024]所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
[0025]所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器。
[0026]通过本发明方法,网关服务器在满足预设条件(例如网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值)时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器,并由聊天服务器解析所述心跳数据包,得到各客户端的在线状态信息,当达到预设时间阈值或者解析得到的心跳状态消息到达设定数量后,将解析得到的多个心跳状态消息打包后发送给状态服务器。这样,网关服务器与聊天服务器之间、聊天服务器与状态服务器之间均无需针对客户端发送的每一个心路消息进行在线状态维护,而在通过将一定数量的心跳消息或一定时间段内的心跳消息打包发送从而维护客户端的在线状态,减轻了各服务器处理心跳消息的压力。
【附图说明】
[0027]图1是本发明实施例中保持心跳连接的方法流程示意图;
[0028]图2是本发明实施例中网关服务器的结构示意图;
[0029]图3是本发明实施例中聊天服务器的结构示意图。
【具体实施方式】
[0030]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0031]如图1所示,本发明提供了一种保持心跳连接的方法,网关服务器接收来自客户端的心跳消息(小包数据),如果心跳消息到达一定的数量或者囤积的时间达到一定的时长,则将这些小包数据打包成一个大的心跳消息集合发送到聊天室服务器。聊天室服务器收到大的心跳包数据集合之后,进行数据解析,并维护客户端在线状态等信息。完成这一步之后,聊天室服务器要发送心跳回应数据给客户端,如此,还需要再一次将返回的小包数据打包成大的心跳包数据集合,发送给网关服务器。由网关服务器解析数据之后,分发给各个客户端。具体地,所述方法包括如下步骤:
[0032]SlOl、客户端向网关服务器发送心跳消息;
[0033]例如,客户端每隔45秒向网关服务器发送心跳消息;
[0034]S102、网关服务器接收接入该网关服务器的客户端所发送的心跳消息,当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包;
[0035]具体地,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值(例如接收到的心跳消息数量达到8192条),或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值(例如5秒)。
[0036]S103、网关服务器将所述心跳数据包发送给聊天室服务器;
[0037]S104、聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
[0038]聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息。
[0039]S105、聊天室服务器根据所述各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
[0040]具体地,当达到预设时间阈值(例如2S),或者解析得到的心跳状态消息到达设定数量后(例如200),所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器。
[0041]S106、聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
[0042]S107、聊天室服务器将所述心跳应答数据包发送给所述网关服务器;
[0043]S108、网关服务器解析所述心跳应答数据包,得到各客户端的心跳应答消息;
[0044]S109、网关服务器将解析得到的心跳应答消息发送给对应的客户端。
[0045]进一步地,如图2所示,本发明提供了一种网关服务器,包括心跳消息接收模块、心跳数据包发送模块、心跳应答数据包接收模块以及心跳应答消息发送模块,其中:
[0046]所述心跳消息接收模块,用于接收接入该网关服务器的客户端所发送的心跳消息;
[0047]所述心跳数据包发送模块,用于在满足预设条件时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;其中,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值;
[0048]所述心跳应答数据包接收模块,用于接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
[0049]所述心跳应答消息发送模块,用于解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
[0050]如图3所示,本发明还提供了一种聊天服务器,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块以及心跳应答数据包发送模块,其中:
[0051]所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;其中,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。
[0052]所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息;
[0053]所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;具体为,当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器;
[0054]所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
[0055]所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器。
[0056]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种保持心跳连接的方法,其特征在于,包括: 网关服务器接收接入该网关服务器的客户端所发送的心跳消息; 当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器; 网关服务器接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包; 网关服务器解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。2.如权利要求1所述的保持心跳连接的方法,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。3.一种保持心跳连接的方法,其特征在于,包括: 聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包; 聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息;并根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态; 聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包; 聊天室服务器将所述心跳应答数据包发送给所述网关服务器。4.如权利要求3所述的保持心跳连接的方法,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。5.如权利要求3或4所述的保持心跳连接的方法,其特征在于,所述根据解析后得到的心跳状态消息向状态服务器更新各客户端的在线状态,具体为: 当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,将解析得到的多个心跳状态消息打包后发送给状态服务器。6.—种网关服务器,其特征在于,包括心跳消息接收模块、心跳数据包发送模块、心跳应答数据包接收模块以及心跳应答消息发送模块,其中: 所述心跳消息接收模块,用于接收接入该网关服务器的客户端所发送的心跳消息; 所述心跳数据包发送模块,用于在满足预设条件时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器; 所述心跳应答数据包接收模块,用于接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包; 所述心跳应答消息发送模块,用于解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。7.如权利要求6所述的网关服务器,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。8.一种聊天服务器,其特征在于,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块以及心跳应答数据包发送模块,其中: 所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包; 所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息; 所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态; 所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包; 所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器。9.如权利要求8所述的聊天服务器,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。10.如权利要求8或9所述的保持心跳连接的方法,其特征在于,所述心跳数据包解析模块根据解析后得到的心跳状态消息向状态服务器更新各客户端的在线状态,具体为: 当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器。
【文档编号】H04L12/26GK105933199SQ201610213883
【公开日】2016年9月7日
【申请日】2016年4月8日
【发明人】杨鹏
【申请人】武汉斗鱼网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1