一种长连接下心跳数据包的处理方法、装置和客户端的制作方法

文档序号:7852861阅读:116来源:国知局
专利名称:一种长连接下心跳数据包的处理方法、装置和客户端的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种长连接下心跳数据包的处理方法、装置和客户端。
背景技术
当网络通信采用传输控制协议(Transmission Control Protocol, TCP)时,在执行真正的数据传输之前,服务器(Server )和客户端(Cl ient)之间必须建立一个连接,这种连接方式包括短连接和长连接。对于短连接,通信双方在有数据交互时,建立一个TCP连接,在本次数据发送完成后,就断开此TCP连接,短连接只会在Server/client之间传递一次读写操作。 对于长连接,在一个TCP连接上可以连续发送多个数据包。通信双方完成一次数据交互后,双方之间的TCP连接不会主动关闭,后续双方间的数据交互会继续使用这个TCP连接。由于移动网络中可提供的连接是有限的,当一个连接单位时间内没有数据交互时,移动网关会自动切断这个连接,以释放资源供其它应用使用,所以为了保持长连接一直存在,会采用心跳机制来维持长连接,参见图1,客户端通过每间隔一段时间(如30秒)向服务器发送一个心跳数据包,以检测所连接的服务器端是否还存在,若存在的话,则服务器端回传一个心跳数据包确定长连接有效,如果客户端没接收到回传的心跳数据包或者回传的心跳数据包有问题,则客户端通知上层应用该TCP连接出现问题。客户端通过计时器控制发送心跳数据包的间隔时间,每隔30秒将计时器重置(归零)一次。目前,各种移动应用,如即时通信(Instant Messaging, IM)、社会性网络服务(Social Networking Services, SNS)和微博等普遍采用长连接的方式,以避免客户端频繁开关网络连接。然而,现有的长连接需要依赖心跳机制保持连接有效,大量的心跳数据包增大了网络流量,增加了服务器操作处理的负荷,也导致客户端的电量消耗过大。

发明内容
本发明提供的一种长连接下心跳数据包的处理方法、装置和客户端,以解决现有长连接下心跳数据包过多导致网络流量过大、服务器负荷较重和客户端电量消耗过大的问题。为达到上述目的,本发明实施例采用了如下技术方案本发明实施例提供了一种长连接下心跳数据包的处理方法包括客户端对长连接的网络数据通道上的数据传输进行监听;客户端对在所述网络数据通道上发送心跳数据包的触发时间进行计时;当客户端根据所述监听确认网络数据通道上当前存在数据传输时,客户端当前不向所连接的服务器发送心跳数据包,并调整所述对触发时间的计时。本发明实施例提供了一种长连接下心跳数据包的处理装置包括数据传输监听单元,用于对长连接的网络数据通道上的数据传输进行监听;
计时器,用于对在所述网络数据通道上发送心跳数据包的触发时间进行计时;触发调整单元,用于当根据所述数据传输监听单元确认网络数据通道上当前存在数据传输时,控制客户端当前不向所连接的服务器发送心跳数据包,并调整所述计时器对触发时间的计时。本发明实施例还提供了一种包括上述长连接下心跳数据包的处理装置的客户端。本发明实施例的有益效果是本发明实施例通过利用网络数据通道中实际的数据传输情况来控制心跳数据包的发送,在确认网络数据通道上当前有数据传输时,则当前不再额外发送心跳数据包,从而能够在保持长连接有效的同时,大大减少了心跳数据包的数量,减轻了服务器的负荷压力,降低了客户端的电量消耗,提高了客户端电池的续航能力。


图I为现有心跳机制的处理流程图;图2为本发明实施例一提供的一种长连接下心跳数据包的处理方法流程图;图3为本发明实施例二提供的一种长连接下心跳数据包的处理方法流程图;图4为本发明实施例三提供的一种长连接下心跳数据包的处理装置的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明实施例一提供的一种长连接下心跳数据包的处理方法,参见图2,所述方法包括21 :客户端对长连接的网络数据通道上的数据传输进行监听。所监听的事件可以包括客户端通过网络数据通道发送数据,或者客户端通过网络数据通道接收到来自服务器推送的数据。22:客户端对在所述网络数据通道上发送心跳数据包的触发时间进行计时。23:当客户端根据所述监听确认网络数据通道上当前存在数据传输时,客户端当前不向所连接的服务器发送心跳数据包,并调整所述对触发时间的计时。上述“当前”时刻可以指客户端从网络数据通道接收到数据包的时刻,或者,客户端向网络数据通道发送数据包的时刻。本实施例中通过调整对触发时间的计时,优化了现有心跳机制中定时触发心跳数据包发送的处理方式,能够根据网络数据通道的使用情况,动态调整触发心跳数据包发送的时机,减少网络通信中的流量开销。下面对本发明实施例二提供的一种长连接下心跳数据包的处理方法进行说明。相比于传统的心跳机制,本实施例对触发心跳数据包发送的时机做了优化,每当网络数据通道中有数据传输,无论是客户端发送数据,还是客户端接收来自服务器的数据,都会同步调整(如重置)计时器,直至计时器到达触发时间时,再发送心跳数据包。参见图3,具体包括如下处理
I :客户端对网络数据通道进行监听。监听客户端在网络数据通道上向所连接的服务器发送的数据包,以及,监听客户端在网络数据通道上接收到的来自所连接的服务器的数据包。在此,所监听的数据包为网络数据通道上所传输的任意数据包,如业务数据包或控制信令数据包等,只要监听到存在数据包传输即表明该网络数据通道的连接有效的,无需再额外发送心跳数据包维持连接。2 :客户端对发送心跳数据包的触发时间进行计吋。步骤I和2是同步执行的,客户端在利用计时器对心跳数据包的触发时间进行计时的同时,对网络数据通道的使用情况进行监听。上述触发时间指示发送心跳数据包的时间间隔,如触发时间的上限值为30秒吋,在不考虑网络数据通道的使用情况下,每隔30秒向服务器发送一次心跳数据包。3 :客户端重置计时。客户端每当监听到网络数据通道被使用的事件,如客户端在网络数据通道上向所连接的服务器发送的数据包,或客户端在所述网络数据通道上接收到的来自所连接的服务器的数据包,就会调整计时器对触发时间的计时。本实施例中所采用的调整方式为直接重置计时器,使计时器从零开始重新计时,延迟发送心跳数据包的触发点,从而减少了发送心跳数据包的数量。4、判断计时是否超过触发时间。客户端中的计时器进行计时操作,并在收到重置指令时从零开始重新计时。客户端会不断判断计时是否达到触发时间,若否,继续计时操作,若是,即计时超过触发时间(如 30秒),则客户端确定当前需要发送心跳数据包,执行步骤5。 5、客户端向服务器发送心跳数据包。以即时通信(M)的场景为例进行说明,当客户端根据用户的指令要发送一条会话消息时,客户端可以调用Π (User Interface,用户界面)控件获取用户所填写的接收端的账号信息和会话消息内容,并按照指定的会话协议组织会话数据包,通过所建立的网络数据通道将会话数据包发送至指定的服务器处理。服务器对会话数据包处理后,反馈响应数据包至客户端,当会话成功吋,该响应数据包指示数据发送成功,当会话失败吋,该响应数据包指示数据发送失败。客户端根据接收到的响应数据包更新会话界面中的消息状态显示。在上述数据传输过程中,客户端中运行的系统能够针对网络数据通道建立输入流对象、输出流对象,客户端通过调用输入流对象或输出流对象的获取数据的接ロ方法执行上述会话数据包的发送或响应数据包的接收。在上述IM场景下,客户端对网络数据通道中传输的上述会话数据包和响应数据包进行监听,当监听到会话数据包的发送或响应数据包的接收时,客户端确认当前不需额外发送心跳数据包,并重置计时器,计时器重新开始计吋,直至计时达到触发时间再发送心跳数据包。下面以ー个具体的示例来说明本方案的有益效果。仍以上面的頂通信的场景为例,若心跳定时为3分钟(触发时间为3分钟),每个心跳数据包为20字节,每5分钟客户端发送一次会话数据包,每个会话数据包为200字节,则在IM会话应用运行I小时的情况下,对网络流量计算如下未采用本方案优化前的网络流量
消息流量+心跳流量=12*200+20*20=2800字节而采用本方案优化后的流量消息流量+心跳流量=12*200+12*20=2640字节可以看到,采用本方案后在頂会话应用运行的I小时内所需发送的心跳数据包从原来的20个减少至12个,优化后流量开销每小时可以減少160字节,随着运行时间的累积,会减少更多的流量;同时,优化后客户端发起的心跳数据包的请求每小时减少了近50%,也就是服务器每小时需要处理的请求減少了近50%,由此可见,优化心跳机制也大大减轻了服务器操作处理的负荷压力;最后,过多的网络通信会带来更多电量的消耗,本方案通过减少网络通信,也降低了电量的消耗,提高了手机终端电池续航的能力。 本发明实施例三还提供了一种长连接下心跳数据包的处理装置,參见图4,所述装置包括数据传输监听单元41,用于对长连接的网络数据通道上的数据传输进行监听;计时器42,用于对在所述网络数据通道上发送心跳数据包的触发时间进行计时;触发调整単元43,用于当根据所述数据传输监听单元确认网络数据通道上当前存在数据传输时,控制客户端当前不向所连接的服务器发送心跳数据包,并调整所述计时器对触发时间的计时。所述装置还包括发送单元,用于当根据所述数据传输监听单元41确认网络数据通道上当前不存在数据传输,且所述计时器42对所述发送心跳数据包的计时达到触发时间时,向所述服务器发送心跳数据包。 进ー步的,所述触发调整单元43包括重置単元,用于在调整所述计时器对触发时间的计时时,将对触发时间的计时调整为从零开始计吋。具体的,所述数据传输监听单元41,用于监听客户端在所述网络数据通道上向所连接的服务器发送的数据包,以及,监听客户端在所述网络数据通道上接收到的来自所连接的服务器的数据包。这时,所述触发调整单元43,用于当客户端向所述服务器发送数据包或接收到来自所述服务器的数据包时,确认网络数据通道上当前存在数据传输。本发明实施例还提供了ー种包括上述长连接下心跳数据包的处理装置的客户端。本发明产品实施例中心跳数据包的处理装置和客户端的具体工作方式,可以參见本发明的方法实施例。由上所述,本发明实施例通过利用网络数据通道中实际的数据传输情况来控制心跳数据包的发送,在确认网络数据通道上当前有数据传输时,则当前不再额外发送心跳数据包,从而能够在保持长连接有效的同时,大大減少了心跳数据包的数量,减轻了服务器的负荷压力,降低了客户端的电量消耗,提高了客户端电池的续航能力。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
1.一种长连接下心跳数据包的处理方法,其特征在于,所述方法包括 客户端对长连接的网络数据通道上的数据传输进行监听; 客户端对在所述网络数据通道上发送心跳数据包的触发时间进行计吋; 当客户端根据所述监听确认网络数据通道上当前存在数据传输时,客户端当前不向所连接的服务器发送心跳数据包,并调整所述对触发时间的计时。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 当客户端根据所述监听确认网络数据通道上当前不存在数据传输,且客户端对所述发送心跳数据包的计时达到触发时间时,客户端向所连接的服务器发送心跳数据包。
3.根据权利要求I或2所述的方法,其特征在于,所述调整所述对触发时间的计时包括 将对触发时间的计时调整为从零开始计吋。
4.根据权利要求I或2所述的方法,其特征在干, 所述客户端对长连接的网络数据通道上的数据传输进行监听包括 监听客户端在所述网络数据通道上向所连接的服务器发送的数据包,以及,监听客户端在所述网络数据通道上接收到的来自所连接的服务器的数据包。
5.根据权利要求I或2所述的方法,其特征在干, 所述客户端根据所述监听确认网络数据通道上当前存在数据传输包括 当客户端向所述服务器发送数据包或接收到来自所述服务器的数据包时,确认网络数据通道上当前存在数据传输。
6.一种长连接下心跳数据包的处理装置,其特征在于,所述装置包括 数据传输监听单元,用于对长连接的网络数据通道上的数据传输进行监听; 计时器,用于对在所述网络数据通道上发送心跳数据包的触发时间进行计时; 触发调整単元,用于当根据所述数据传输监听单元确认网络数据通道上当前存在数据传输时,控制客户端当前不向所连接的服务器发送心跳数据包,并调整所述计时器对触发时间的计时。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括发送单元,用于当根据所述数据传输监听单元确认网络数据通道上当前不存在数据传输,且所述计时器对所述发送心跳数据包的计时达到触发时间时,向所述服务器发送心跳数据包。
8.根据权利要求7所述的装置,其特征在于,所述触发调整单元包括重置単元,用于在调整所述计时器对触发时间的计时时,将对触发时间的计时调整为从零开始计时。
9.根据权利要求7所述的装置,其特征在干, 所述数据传输监听单元,用于监听客户端在所述网络数据通道上向所连接的服务器发送的数据包,以及,监听客户端在所述网络数据通道上接收到的来自所连接的服务器的数据包; 所述触发调整单元,用于当客户端向所述服务器发送数据包或接收到来自所述服务器的数据包时,确认网络数据通道上当前存在数据传输。
10.一种客户端,其特征在于,所述客户端包括根据上述权利要求6至9任一项所述的长连接下心跳数据包的处理装置。
全文摘要
本发明公开了一种长连接下心跳数据包的处理方法、装置和客户端,能够减轻服务器的负荷压力,降低客户端的电量消耗,提高客户端电池的续航能力。本发明实施例提供的长连接下心跳数据包的处理方法包括客户端对长连接的网络数据通道上的数据传输进行监听;客户端对在所述网络数据通道上发送心跳数据包的触发时间进行计时;当客户端根据所述监听确认网络数据通道上当前存在数据传输时,客户端当前不向所连接的服务器发送心跳数据包,并调整所述对触发时间的计时。
文档编号H04L12/26GK102684949SQ20121018200
公开日2012年9月19日 申请日期2012年6月4日 优先权日2012年6月4日
发明者高薇 申请人:北京神州泰岳软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1