CN112202626A - 一种实时数据通信心跳包推送方法 - Google Patents
一种实时数据通信心跳包推送方法 Download PDFInfo
- Publication number
- CN112202626A CN112202626A CN202010770886.3A CN202010770886A CN112202626A CN 112202626 A CN112202626 A CN 112202626A CN 202010770886 A CN202010770886 A CN 202010770886A CN 112202626 A CN112202626 A CN 112202626A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- time
- period
- cycle
- packet
- 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.)
- Pending
Links
Classifications
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种实时数据通信心跳包推送方法,包括如下步骤:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包,断网重连时,再次通过向服务器推送心跳包消息,将客户端拉起运行,本发明不断延长心跳包发送周期,试探设备最长的支持心跳时间,以心跳发送失败的的心跳周期的前一心跳周期为心跳周期,这样既能保证设备不断线,又能减少心跳包的发送频率,降低设备功耗,客户端设备电量消耗降低明显。
Description
技术领域
本发明涉及应用程序信息推送领域,特别涉及一种实时数据通信心跳包推送方法。
背景技术
大部分移动无线网络运营商都在链路一段时间没有数据通讯时,会淘汰NAT(网络地址转换)表中的对应项,造成链路中断。NAT超时是影响TCP(传输控制协议)连接寿命的一个重要因素。
安卓***对DHCP(动态主机配置协议)的处理有漏洞,DHCP租期到了不会主动续约并继续使用过期IP,这个问题会造成TCP长连接偶然的断连。
手机网络和WIFI网络切换、网络断开和连上等情况有网络状态的变化,也会使长连接变为无效连接,需要监听响应的网络状态变化事件,重新建立Push长连接。
网络中的接收和发送数据都是使用SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。如何判断这个套接字是否还可以使用呢?我们在***中创建了心跳机制。“心跳”就是定时发送一个自定义的结构体(心跳包或心跳帧),让对方知道自己“在线”,以确保链接的有效性,
目前的客户端软件可以在windows上也可以在android或者ios移动设备上运行,在心跳机制下,客户端每隔固定时间就要给服务器发送一次心跳包,由于频繁的发包,App将会更加耗电,发热情况较重,移动设备的电池续航时间将降低。另外,由于频繁发包,也会占用一定的cpu资源,在有其他大型应用运行时,也更可能出现死机等不良的用户体验,在移动网络下,大量的心跳包会对移动运营商的网络产生信令风暴。
发明内容
针对现有技术存在的问题本发明提供了一种实时数据通信心跳包推送方法,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间;
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
优选的是:所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
优选的是,所述心跳周期初始设定为预设时间2-5秒之间。每次心跳周期延长时间为1-10秒中任意时间。
优选的是:所述心跳周期初始设定为预设时间为2秒,每次心跳周期延长时间为2秒。
优选的是:每个心跳周期持续至少一次。
本发明具有以下有益效果:
1、不断延长心跳包发送周期,试探设备最长的支持心跳时间,以心跳发送失败的的心跳周期的前一心跳周期为心跳周期,这样既能保证设备不断线,又能减少心跳包的发送频率,降低设备功耗,客户端设备电量消耗降低明显。
2、由于心跳包发送周期合理延长,断线重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行,各个设备的心跳周期不同加之心跳周期长,不会出现大量设备同时频繁向服务器发送心跳包,不会因断网重连占用太多cpu资源,
3、由于心跳包发送周期合理延长,在有大型应用运行时,也能减少死机现象,服务器处理消息压力明显降低。
4、由于心跳包发送周期合理延长,减少移动网络下大量的心跳包对移动运营商的网络产生信令风暴的概率。
5、保障长连接的连接状态,提高通信消息到达率和实时性。
具体实施方式
下面对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
实施例1
一种实时数据通信心跳包推送方法,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,现有的客户端设备心跳包的预设固定周期通常为2-5秒之间,本实施例中,所述心跳周期初始设定为预设时间为2秒,每次心跳周期延长时间可以设置为2秒。
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
每个心跳周期持续至少一次。
实施例2
一种实时数据通信心跳包推送方法,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,现有的客户端设备心跳包的预设固定周期通常为2-5秒之间,本实施例中,所述心跳周期初始设定为预设时间为3秒,每次心跳周期延长时间可以设置为1秒。
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
每个心跳周期持续至少一次。
实施例3
一种实时数据通信心跳包推送方法,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,现有的客户端设备心跳包的预设固定周期通常为2-5秒之间,本实施例中,所述心跳周期初始设定为预设时间为4秒,每次心跳周期延长时间可以设置为7秒。
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
每个心跳周期持续至少一次。
实施例4
一种实时数据通信心跳包推送方法,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,现有的客户端设备心跳包的预设固定周期通常为2-5秒之间,本实施例中,所述心跳周期初始设定为预设时间为5秒,每次心跳周期延长时间可以设置为10秒。
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
每个心跳周期持续至少一次。
经实践后得知,所述心跳周期初始设定为预设时间为2秒,每次心跳周期延长时间可以设置为2秒较佳,为最佳实施例。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节。
Claims (5)
1.一种实时数据通信心跳包推送方法,其特征在于,包括如下步骤:
步骤1:客户端与服务器端建立初始连接后,客户端应用程序自动向服务器发送心跳包,所述心跳包发送周期初始设定为预设时间,不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间;
步骤2:以设备最长的支持心跳时间为心跳周期,持续向服务器发送心跳包;
步骤3:断网重连时,再次通过向服务器推送心跳包消息,重新建立通信进程,定位进程和界面进程,将客户端拉起运行;
步骤4:重新开始以初始预定的心跳周期发送心跳包,再次不断延长心跳周期,直至心跳周期延长至设备最长的支持心跳时间,如此反复循环。
2.根据权利要求1所述的一种实时数据通信心跳包推送方法,其特征在于:所述设备最长的支持心跳时间的确定方法为:客户端记录最后心跳发送失败的心跳周期,以最后心跳发送失败的心跳周期的前一周期为心跳周期发送心跳,此心跳周期为所述设备最长的支持心跳时间,既极限的心跳间隔。
3.根据权利要求2所述的一种实时数据通信心跳包推送方法,其特征在于:所述心跳周期初始设定为预设时间2-5秒之间。每次心跳周期延长时间为1-10秒中任意时间。
4.根据权利要求3所述的一种实时数据通信心跳包推送方法,其特征在于:所述心跳周期初始设定为预设时间为2秒,每次心跳周期延长时间为2秒。
5.根据权利要求3所述的一种实时数据通信心跳包推送方法,其特征在于:每个心跳周期持续至少一次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010770886.3A CN112202626A (zh) | 2020-08-04 | 2020-08-04 | 一种实时数据通信心跳包推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010770886.3A CN112202626A (zh) | 2020-08-04 | 2020-08-04 | 一种实时数据通信心跳包推送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112202626A true CN112202626A (zh) | 2021-01-08 |
Family
ID=74004865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010770886.3A Pending CN112202626A (zh) | 2020-08-04 | 2020-08-04 | 一种实时数据通信心跳包推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202626A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390453A (zh) * | 2022-02-09 | 2022-04-22 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
CN115766823A (zh) * | 2022-10-26 | 2023-03-07 | 浪潮软件股份有限公司 | 基于tcp实现终端app与服务器断线重连的方法及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997011746A1 (en) * | 1995-09-29 | 1997-04-03 | Medtronic, Inc. | Adaptive search av and auto pvarp adaptation to same with additional benefit |
CN103581950A (zh) * | 2013-11-15 | 2014-02-12 | 中国联合网络通信集团有限公司 | 电子设备、心跳消息的发送方法与*** |
CN103634746A (zh) * | 2013-12-13 | 2014-03-12 | 中国人民解放军重庆通信学院 | 一种保持PoC持续连接处理能力的方法和装置 |
CN104135460A (zh) * | 2013-05-03 | 2014-11-05 | 华为软件技术有限公司 | 一种推送通道保活方法和推送服务器 |
CN104207756A (zh) * | 2013-06-03 | 2014-12-17 | 飞比特公司 | 可佩戴心率监视器 |
CN105307139A (zh) * | 2014-07-31 | 2016-02-03 | 中国电信股份有限公司 | 一种传输应用心跳信号的方法、移动终端和*** |
CN105577507A (zh) * | 2014-11-10 | 2016-05-11 | ***通信集团广东有限公司 | 一种心跳包发送间隔的调整方法、装置及服务器 |
CN105578515A (zh) * | 2014-10-15 | 2016-05-11 | 上海点艺信息技术有限公司 | 一种心跳频率参数的维护方法及服务器 |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
CN109981384A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种动态调整心跳周期的***和方法 |
-
2020
- 2020-08-04 CN CN202010770886.3A patent/CN112202626A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997011746A1 (en) * | 1995-09-29 | 1997-04-03 | Medtronic, Inc. | Adaptive search av and auto pvarp adaptation to same with additional benefit |
AU7235096A (en) * | 1995-09-29 | 1997-04-17 | Medtronic, Inc. | Adaptive search av and auto pvarp adaptation to same with additional benefit |
EP0794813A1 (en) * | 1995-09-29 | 1997-09-17 | Medtronic, Inc. | Adaptive search av and auto pvarp adaptation to same with additional benefit |
US5861007A (en) * | 1995-09-29 | 1999-01-19 | Medtronic, Inc. | Adaptive search AV and auto PVARP adaptation to same with additional benefit |
CN104135460A (zh) * | 2013-05-03 | 2014-11-05 | 华为软件技术有限公司 | 一种推送通道保活方法和推送服务器 |
CN104207756A (zh) * | 2013-06-03 | 2014-12-17 | 飞比特公司 | 可佩戴心率监视器 |
CN106073737A (zh) * | 2013-06-03 | 2016-11-09 | 飞比特公司 | 可佩戴心率监视器 |
CN106333667A (zh) * | 2013-06-03 | 2017-01-18 | 飞比特公司 | 可佩戴心率监视器 |
CN103581950A (zh) * | 2013-11-15 | 2014-02-12 | 中国联合网络通信集团有限公司 | 电子设备、心跳消息的发送方法与*** |
CN103634746A (zh) * | 2013-12-13 | 2014-03-12 | 中国人民解放军重庆通信学院 | 一种保持PoC持续连接处理能力的方法和装置 |
CN105307139A (zh) * | 2014-07-31 | 2016-02-03 | 中国电信股份有限公司 | 一种传输应用心跳信号的方法、移动终端和*** |
CN105578515A (zh) * | 2014-10-15 | 2016-05-11 | 上海点艺信息技术有限公司 | 一种心跳频率参数的维护方法及服务器 |
CN105577507A (zh) * | 2014-11-10 | 2016-05-11 | ***通信集团广东有限公司 | 一种心跳包发送间隔的调整方法、装置及服务器 |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
CN109981384A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种动态调整心跳周期的***和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390453A (zh) * | 2022-02-09 | 2022-04-22 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
CN114390453B (zh) * | 2022-02-09 | 2023-09-08 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
CN115766823A (zh) * | 2022-10-26 | 2023-03-07 | 浪潮软件股份有限公司 | 基于tcp实现终端app与服务器断线重连的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645529B (zh) | 心跳包发送方法及装置 | |
CN107465556B (zh) | 一种主备服务器的切换方法、装置及*** | |
WO2021077811A1 (zh) | 分布式拒绝服务ddos攻击的防护方法、装置及*** | |
EP3229420A1 (en) | Method for establishing persistent connection between multiple smart devices and server, and smart device | |
US7515549B2 (en) | Managing devices across NAT boundaries | |
CN110266810B (zh) | 基于mqtt协议的消息接收方法、设备及存储介质 | |
CN112202626A (zh) | 一种实时数据通信心跳包推送方法 | |
KR20050086182A (ko) | 홈네트워크 시스템 및 그 제어 방법 | |
CN101714991B (zh) | 心跳机制的实现方法 | |
CN110691398B (zh) | 智能设备的网络交互方法、***、设备及存储介质 | |
US10594844B2 (en) | Method and system for wireless network bilateral accelerated transmission | |
CN102957623B (zh) | 一种边界网关协议邻居的维护方法和设备 | |
CN101656764A (zh) | Dhcp用户的会话保活方法、***和装置 | |
CN101485141B (zh) | 用于基于管理服务发现Web服务的两阶段机制的方法和*** | |
CN105450779A (zh) | 一家电设备连接多服务器的方法 | |
JP2010103695A (ja) | クラスタシステム、クラスタサーバ及びクラスタ制御方法 | |
CN107454184B (zh) | Android客户端与服务器建立稳定网络连接的方法 | |
CN112217649A (zh) | 终端设备管理方法、服务器及终端设备 | |
CN103516766B (zh) | 一种客户端与应用服务器间进行通信的方法和*** | |
CN104202814B (zh) | 一种实现信息自注册的方法、终端、服务器及*** | |
CN105554150A (zh) | 一种网络登录方法及装置 | |
CN108270593B (zh) | 一种双机热备份方法和*** | |
WO2013159492A1 (zh) | 信息上报与下载的方法及*** | |
CN101304367B (zh) | 订户会话的存活监控方法、***及装置 | |
CN111225080A (zh) | 一种网关下挂设备信息的获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210108 |