[发明专利]一种客户端在线状态判定方法及其系统在审
申请号: | 201210151245.5 | 申请日: | 2012-05-16 |
公开(公告)号: | CN102647314A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 周聪伟 | 申请(专利权)人: | 深圳市乐唯科技开发有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/58 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 胡彬 |
地址: | 518000 广东省深圳市福田区泰*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 客户端 在线 状态 判定 方法 及其 系统 | ||
技术领域
本发明涉及即时通信技术领域,尤其涉及一种客户端在线状态判定方法及其系统。
背景技术
在即时通信领域中,要实现及时消息的传送功能,必须要保证服务器和客户端之间的连接有效,所以客户端在线状态的判定尤为重要。现在技术都是采用心跳包和断线重连机制来实现,即通过从客户端发出心跳包,服务器响应来判断客户端是否在线。但是,这种方案下,客户端需要启动计时器,每隔3到5分钟,就需要有一个心跳包发送到服务器,并且需要等待服务器的返回,导致网络流量和电量消耗增加,使得客户端,特别是移动网络设备的待机时间过短,上网资费过高,给用户带来不便。
发明内容
为了即时通信系统的服务器和客户端之间的连接有效,降低客户端电量消耗和网络流量消耗,避免资源的浪费,本发明提供了一种客户端在线状态判定方法及其系统。所述技术方案如下:
一种客户端在线状态判定方法,所述方法包括:
S1:服务器对预设响应时间和预设心跳时间进行初始化,开启计时器;
S2:服务器等到计时器计时达到预设心跳时间向客户端发送心跳包,将计时器清零并重新计时;
S3:如果服务器在预设响应时间之内收到客户端的返回心跳确认包,将计时器清零并重新计时,并返回步骤S2,否则判定客户端处于离线状态。
进一步地,步骤S1中服务器对预设响应时间和预设心跳时间进行初始化,方法为将预设响应时间和预设心跳时间设定为服务器端系统管理员所设定的时间。
进一步地,所述步骤S2中如果服务上收到该客户端的上行消息包,则将计时器清零并重新计时,计时器继续计时直到超时并再次执行本步骤。
进一步地,其中所述步骤S1开启计时器之后还包括步骤S11:服务器创建在线客户端列表,对在线客户端列表进行初始化;所述步骤S2具体包括S21:将计时器的时间与预设心跳时间进行比较,如果超时,服务器向该在线客户端发送心跳包,将计时器清零并重新计时,否则继续计时;所述步骤S3具体包括S31:如果服务器在计时器计时达到预设响应时间之内收到任何客户端的心跳确认包,则将该客户端记载到在线客户端列表中,当服务器在计时器计时达到预设响应时间,将计时器清零并重新计时,返回步骤S21。
进一步地,所述步骤S11对在线客户端列表进行初始化具体为:将所有的在线客户端记载到在线客户端列表中。
进一步地,所述步骤S21之前,当有客户端申请连接到服务器或有客户端网络状态发生改变申请重连接时,将该客户端记载到所述在线客户端列表中。
一种客户端在线状态判定系统,包括服务器和与其进行数据交互的至少一个客户端;
所述服务器,用于对预设响应时间和预设心跳时间进行初始化,开启计时器,向客户端发送心跳包和消息包,接收客户端发送的返回心跳确认包和消息包,判定客户端的在线状态;
所述客户端,用于接收服务器发送的心跳包和消息包,向服务器发送心跳确认包和消息包。
进一步地,所述服务器包括收发模块、计时器、判定模块;收发模块与计时器和判定模块相连,用于向客户端发送心跳包和消息包,接收客户端发送的心跳确认包和消息包;计时器,与收发模块和判定模块相连,用于计时;判定模块,与收发模块和计时器相连,用于判定客户端的在线状态。当计时达到预设心跳时间,服务器向所述客户端发送心跳包,如果服务器在所述预设响应时间之内收到所述客户端的所述返回心跳确认包,则判定所述客户端处于在线状态,否则判定所述客户端处于离线状态。
进一步地,所述客户端包括收发模块,用于接收服务器发送的心跳包和消息包,发送心跳确认包和消息包到服务器。
进一步地,所述客户端还包括自检模块,与收发模块相连,用于检查客户端自身的网络连接状态,当客户端的网络状态改变时,自检模块通知服务器并向服务器发送连接申请。
本发明实施例提供的技术方案的有益效果是:
考虑了客户端电量的消耗和网络流量的消耗,通过服务器的心跳机制和客户端的主动检测网络状态的自检模块,实现客户端在线状态的判定。服务器端主要是消耗了一些内存,来存储计时器的时间,对服务器的性能影响不大;客户端则不需要启动定时器,不用每隔一段时间就发送一个心跳包发送到服务器,仅需要对服务器的心跳包进行响应和对自身网络状态进行检测。
附图说明
图1是本发明的系统结构框图;
图2是本发明客户端在线状态判定方法流程图;
图3是实施例一客户端在线状态判定方法流程图;
图4是实施例二客户端在线状态判定方法流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市乐唯科技开发有限公司,未经深圳市乐唯科技开发有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210151245.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种内燃叉车消声器减振系统
- 下一篇:一种抽拉式蓄电池托架装置