CN105933199B - 一种保持心跳连接的方法与网关及聊天服务器 - Google Patents
一种保持心跳连接的方法与网关及聊天服务器 Download PDFInfo
- Publication number
- CN105933199B CN105933199B CN201610213883.3A CN201610213883A CN105933199B CN 105933199 B CN105933199 B CN 105933199B CN 201610213883 A CN201610213883 A CN 201610213883A CN 105933199 B CN105933199 B CN 105933199B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- server
- client
- message
- data packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种保持心跳连接的方法,包括:网关服务器接收接入该网关服务器的客户端所发送的心跳消息;当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;网关服务器接收聊天室服务器返回的心跳应答数据包;网关服务器解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。网关服务器与聊天服务器之间、聊天服务器与状态服务器之间均无需针对客户端发送的每一个心路消息进行在线状态维护,而在通过将一定数量的心跳消息或一定时间段内的心跳消息打包发送从而维护客户端的在线状态,减轻了各服务器处理心跳消息的压力。
Description
技术领域
本发明属于网络通信技术领域,更具体地,涉及一种保持心跳连接的方法与网关及聊天服务器。
背景技术
随着互联网应用的发展,网络在线通讯的应用越来越多。例如大多数的网络在线通讯应用就是建立在TCP长连接服务上的,为管理这些长连接,保证及时销毁无用的连接以释放资源服务于有需的用户,网络在线通讯应用的后台服务器需要与客户端保持心跳。具体说来,客户端每隔一段时间(例如设置为45秒)需向后台服务器发送一条心跳消息以保证客户端与后台服务器之间的对应连接的后续可用性。
当接入的客户端数量达到一定的数量级时(例如20W左右),这么多的客户端与后台服务器之间的心跳消息会达到一个很大的数量级,后台服务器需要消耗大量的资源去处理这些心跳消息,以至于后台服务器的性能大打折扣。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种保持心跳连接的方法与网关及聊天服务器,其目的在于降低客户端与后台服务器之间发送心跳消息的频率,由此解决在线客户端太多时心跳消息过量导致后台服务器处理心跳消息压力太大的问题。
为实现上述目的,按照本发明的一个方面,提供了一种保持心跳连接的方法,包括:
网关服务器接收接入该网关服务器的客户端所发送的心跳消息;
当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;
网关服务器接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
网关服务器解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
按照本发明的另一方面,提供了一种保持心跳连接的方法,包括:
聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息;并根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
聊天室服务器将所述心跳应答数据包发送给所述网关服务器。。
按照本发明的另一方面,还提供了一种网关服务器,包括心跳消息接收模块、心跳数据包发送模块、心跳应答数据包接收模块以及心跳应答消息发送模块,其中:
所述心跳消息接收模块,用于接收接入该网关服务器的客户端所发送的心跳消息;
所述心跳数据包发送模块,用于在满足预设条件时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;
所述心跳应答数据包接收模块,用于接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
所述心跳应答消息发送模块,用于解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
按照本发明的另一方面,还提供了一种聊天服务器,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块以及心跳应答数据包发送模块,其中:
所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息;
所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器。
通过本发明方法,网关服务器在满足预设条件(例如网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值)时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器,并由聊天服务器解析所述心跳数据包,得到各客户端的在线状态信息,当达到预设时间阈值或者解析得到的心跳状态消息到达设定数量后,将解析得到的多个心跳状态消息打包后发送给状态服务器。这样,网关服务器与聊天服务器之间、聊天服务器与状态服务器之间均无需针对客户端发送的每一个心路消息进行在线状态维护,而在通过将一定数量的心跳消息或一定时间段内的心跳消息打包发送从而维护客户端的在线状态,减轻了各服务器处理心跳消息的压力。
附图说明
图1是本发明实施例中保持心跳连接的方法流程示意图;
图2是本发明实施例中网关服务器的结构示意图;
图3是本发明实施例中聊天服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明提供了一种保持心跳连接的方法,网关服务器接收来自客户端的心跳消息(小包数据),如果心跳消息到达一定的数量或者囤积的时间达到一定的时长,则将这些小包数据打包成一个大的心跳消息集合发送到聊天室服务器。聊天室服务器收到大的心跳包数据集合之后,进行数据解析,并维护客户端在线状态等信息。完成这一步之后,聊天室服务器要发送心跳回应数据给客户端,如此,还需要再一次将返回的小包数据打包成大的心跳包数据集合,发送给网关服务器。由网关服务器解析数据之后,分发给各个客户端。具体地,所述方法包括如下步骤:
S101、客户端向网关服务器发送心跳消息;
例如,客户端每隔45秒向网关服务器发送心跳消息;
S102、网关服务器接收接入该网关服务器的客户端所发送的心跳消息,当满足预设条件时,网关服务器将接收的多个心跳消息打包成一个心跳数据包;
具体地,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值(例如接收到的心跳消息数量达到8192条),或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值(例如5秒)。
S103、网关服务器将所述心跳数据包发送给聊天室服务器;
S104、聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息。
S105、聊天室服务器根据所述各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
具体地,当达到预设时间阈值(例如2S),或者解析得到的心跳状态消息到达设定数量后(例如200),所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器。
S106、聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
S107、聊天室服务器将所述心跳应答数据包发送给所述网关服务器;
S108、网关服务器解析所述心跳应答数据包,得到各客户端的心跳应答消息;
S109、网关服务器将解析得到的心跳应答消息发送给对应的客户端。
进一步地,如图2所示,本发明提供了一种网关服务器,包括心跳消息接收模块、心跳数据包发送模块、心跳应答数据包接收模块以及心跳应答消息发送模块,其中:
所述心跳消息接收模块,用于接收接入该网关服务器的客户端所发送的心跳消息;
所述心跳数据包发送模块,用于在满足预设条件时,将接收的多个心跳消息打包成一个心跳数据包,并将所述心跳数据包发送给聊天室服务器;其中,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值;
所述心跳应答数据包接收模块,用于接收聊天室服务器返回的心跳应答数据包;其中,所述心跳应答数据包是聊天室服务器在解析所述心跳数据包后,对所述心跳数据包中所包含的各心跳消息所对应的客户端反馈的心跳应答消息的数据包;
所述心跳应答消息发送模块,用于解析所述心跳应答数据包,并将解析得到的心跳应答消息发送给对应的客户端。
如图3所示,本发明还提供了一种聊天服务器,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块以及心跳应答数据包发送模块,其中:
所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;其中,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。
所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息;
所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;具体为,当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器;
所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种保持心跳连接的方法,其特征在于,包括:
聊天室服务器接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
聊天室服务器解析所述心跳数据包,得到各客户端的在线状态信息;并根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;所述根据解析后得到的心跳状态消息向状态服务器更新各客户端的在线状态,具体为:
当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,将解析得到的多个心跳状态消息打包后发送给状态服务器;
聊天室服务器根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
聊天室服务器将所述心跳应答数据包发送给所述网关服务器;网关服务器解析所述心跳应答数据包,得到各客户端的心跳应答消息;网关服务器将解析得到的心跳应答消息发送给对应的客户端。
2.如权利要求1所述的保持心跳连接的方法,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。
3.一种聊天服务系统,其特征在于,包括心跳数据包接收模块、心跳数据包解析模块、心跳状态数据包发送模块、心跳应答数据包生成模块、心跳应答数据包发送模块以及网关服务器,其中:
所述心跳数据包接收模块,用于接收网关服务器所发送的心跳数据包;其中,所述心跳数据包是当满足预设条件时,所述网关服务器将接收自接入该网关服务器的客户端的多个心跳消息打包成的心跳数据包;
所述心跳数据包解析模块,用于解析所述心跳数据包,得到各客户端的在线状态信息;所述心跳数据包解析模块根据解析后得到的心跳状态消息向状态服务器更新各客户端的在线状态,具体为:
当达到预设时间阈值,或者解析得到的心跳状态消息到达设定数量后,所述心跳数据包解析模块将解析得到的多个心跳状态消息打包后发送给状态服务器;
所述心跳状态数据包发送模块,用于根据解析后得到的各客户端的在线状态信息向状态服务器更新各客户端的在线状态;
所述心跳应答数据包生成模块,用于根据解析后得到的心跳消息,生成所述各心跳消息所对应的客户端心跳应答消息并打包成心跳应答数据包;
所述心跳应答数据包发送模块,用于将所述心跳应答数据包发送给所述网关服务器;
所述网关服务器还用于解析所述心跳应答数据包,得到各客户端的心跳应答消息,将解析得到的心跳应答消息发送给对应的客户端。
4.如权利要求3所述的聊天服务系统,其特征在于,所述预设条件是指所述网关服务器接收到的心跳消息的数量达到设定数量阈值,或者所述网关服务器自上次向聊天室服务器发送心跳数据包的时间间隔达到设定时间间隔阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610213883.3A CN105933199B (zh) | 2016-04-08 | 2016-04-08 | 一种保持心跳连接的方法与网关及聊天服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610213883.3A CN105933199B (zh) | 2016-04-08 | 2016-04-08 | 一种保持心跳连接的方法与网关及聊天服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105933199A CN105933199A (zh) | 2016-09-07 |
CN105933199B true CN105933199B (zh) | 2019-07-09 |
Family
ID=56840521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610213883.3A Active CN105933199B (zh) | 2016-04-08 | 2016-04-08 | 一种保持心跳连接的方法与网关及聊天服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105933199B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961615A (zh) * | 2017-03-22 | 2017-07-18 | 北京奇艺世纪科技有限公司 | 一种直播方法及系统 |
CN107087232B (zh) * | 2017-04-07 | 2020-03-27 | 优地网络有限公司 | 用户的实时状态检测方法及系统 |
CN107222371A (zh) * | 2017-08-04 | 2017-09-29 | 北京奇艺世纪科技有限公司 | 一种客户端心跳监测方法和系统 |
CN108281181B (zh) * | 2018-01-19 | 2022-01-18 | 张晨雨 | 一种婴儿监护系统及婴儿监护方法 |
CN108667505A (zh) * | 2018-04-20 | 2018-10-16 | 广州亿航智能技术有限公司 | 无人机通信链路的数据处理方法及计算机可读存储介质 |
CN110149368A (zh) * | 2019-04-19 | 2019-08-20 | 平安科技(深圳)有限公司 | 基于中间服务器的心跳包发送方法、装置和计算机设备 |
CN110365803B (zh) * | 2019-08-26 | 2021-11-02 | 四川艾贝斯科技发展有限公司 | 一种基于udp协议的网络通道维持方法 |
CN111861547A (zh) * | 2020-06-29 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法和装置 |
CN112260888B (zh) * | 2020-09-27 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 容器云、容器云的资源管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714991A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 心跳机制的实现方法 |
CN102790776A (zh) * | 2012-08-03 | 2012-11-21 | 中国联合网络通信集团有限公司 | 心跳连接归一处理方法、终端、服务器及通信系统 |
CN103916442A (zh) * | 2013-01-07 | 2014-07-09 | 阿里巴巴集团控股有限公司 | 消息推送实现方法、移动终端及消息推送系统 |
-
2016
- 2016-04-08 CN CN201610213883.3A patent/CN105933199B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714991A (zh) * | 2009-10-30 | 2010-05-26 | 清华大学 | 心跳机制的实现方法 |
CN102790776A (zh) * | 2012-08-03 | 2012-11-21 | 中国联合网络通信集团有限公司 | 心跳连接归一处理方法、终端、服务器及通信系统 |
CN103916442A (zh) * | 2013-01-07 | 2014-07-09 | 阿里巴巴集团控股有限公司 | 消息推送实现方法、移动终端及消息推送系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105933199A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105933199B (zh) | 一种保持心跳连接的方法与网关及聊天服务器 | |
US11323316B2 (en) | Device configuration method and apparatus that are based on network configuration protocol | |
US10834031B2 (en) | Information exchange method, client, and apparatus | |
KR101467173B1 (ko) | M2m 네트워크의 리소스 관리 방법 및 리소스 관리 장치 | |
US10263872B2 (en) | Long connection sharing method for multi-businesses, system and device, terminal | |
EP2854374A1 (en) | Method and device for managing terminal in home network and home network | |
CN104243281B (zh) | 基于移动互联网的语音通信方法 | |
US10743148B2 (en) | Multi-group call setup method and device | |
CN108696588A (zh) | 一种信息的发送方法及设备 | |
WO2005002126A3 (en) | Self-contained instant messaging appliance | |
KR102128356B1 (ko) | 리소스 획득 방법 및 장치 | |
CN104009960B (zh) | 一种实现手机客户端即时通信的方法及装置 | |
CN106899621B (zh) | 一种调度系统及方法 | |
CN112437153A (zh) | 一种设备联动处理方法及装置 | |
WO2009086199A3 (en) | Method and system for managing the reception of messages in a communication network | |
CN103312586B (zh) | 一种即时通信的方法、系统及服务器 | |
CN106961377A (zh) | 消息同步方法和消息同步系统 | |
JP4624443B2 (ja) | ネットワーク機器設定方法 | |
CN106130787B (zh) | 一种基于软件定义网络的业务处理系统 | |
CN110417875B (zh) | 一种云服务器之间的对接方法、系统、设备及存储介质 | |
CN102694675A (zh) | 一种基于snmp协议的异步通信方法及装置 | |
CN110971509A (zh) | 一种高并发场景下即时通信消息传输方法 | |
CN105933352B (zh) | 基于客户端的服务器之间数据同步方法、客户端及系统 | |
CN105592176B (zh) | 一种信息处理方法、网络设备及系统 | |
CN103873355B (zh) | 一种信息配对方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |