一种获取终端在线状态的方法及装置的制造方法

文档序号:9754368阅读:569来源:国知局
一种获取终端在线状态的方法及装置的制造方法
【技术领域】
[0001]本发明涉及电通信技术领域,尤其涉及一种获取终端在线状态的方法及装置。
【背景技术】
[0002]在线观看视频、实时聊天和流媒体直播等终端,在播放和聊天的过程中终端与数据库之间需要频繁的传输数据,所以通过建立终端与数据库的长连接实现。而长连接的持续建立会耗费大量的数据库资源。为节省宝贵的数据库资源,现有技术会对终端状态进行检测,若终端处于离线状态,则切断终端与数据库的连接,从而减少数据库资源的浪费。随着网络时代的到来,互联网用户原来越多,终端的在线用户越来越多,数据库的资源越来越紧张,高效检测终端是否在线的要求越来越迫切。
[0003]现有技术中检测终端是否在线的方式为:由终端按照一定的时间间隔向数据库发送心跳包,以便告知数据库终端还在线,长连接还需持续。或者由数据库按照一定的时间间隔向终端发送心跳包,以获取终端的在线状态。由于互联网用户越来越多,数据库接收到的心跳包也越来越多,对大量心跳包的接收会占用较多的数据库资源,增加数据库负荷的压力。

【发明内容】

[0004]本发明提供了一种获取终端在线状态的方法及装置,能够解决数据库负荷压力大的问题。
[0005]为了解决上述技术问题,一方面,本发明提供了一种获取终端在线状态的方法,该方法包括:
[0006]检测终端当前的在线状态,所述在线状态包括“在线”和“离线”两种状态;
[0007]将当前的在线状态与上一次检测的在线状态进行比对;
[0008]若所述终端的在线状态发生改变,则修改所述终端的状态信息;
[0009]将修改后的状态信息发送给数据库。
[0010]另一方面,本发明提供了一种获取终端在线状态的装置,该装置包括:
[0011 ]检测单元,用于检测终端当前的在线状态,所述在线状态包括“在线”和“离线”两种状态;
[0012]比对单元,用于将检测单元检测的当前的在线状态与上一次检测的在线状态进行比对;
[0013]修改单元,用于若所述比对单元比对的终端的在线状态发生改变,则修改所述终端的状态信息;
[0014]发送单元,用于将所述修改单元修改后的状态信息发送给数据库。
[0015]本发明提供的获取终端在线的方法及装置,能够通过检测终端当前的在线状态,将当前的在线状态与上一次检测的在线状态进行对比,根据终端在线状态的改变,修改终端的状态信息,将修改后的状态信息发送给数据库。与现有技术相比,本发明仅将在线状态发生改变的终端的状态信息发送给数据库,而不是将所有终端的状态信息发送给数据库,能够减少向数据库发送的数据量,进而降低数据库负荷压力。
[0016]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0017]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0018]图1示出了本发明实施例提供的一种获取终端在线状态的方法流程图;
[0019]图2示出了本发明实施例提供的另一种获取终端在线状态的方法流程图;
[0020]图3示出了本发明实施例提供的一种获取终端在线状态的装置组成框图;
[0021 ]图4示出了本发明实施例提供的另一种获取终端在线状态的装置组成框图。
【具体实施方式】
[0022]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0023]为了解决数据库负荷压力大的问题,本发明实施例提供了一种获取终端在线状态的方法,如图1所示,该方法包括:
[0024]101、检测终端当前的在线状态。
[0025]在线状态包括“在线”和“离线”两种状态,表示终端的在线状态。在线状态,表示终端有网络数据需求,终端与服务器存在数据传输。离线状态,表示终端暂时没有网络需求,终端与服务器之间暂时不存在数据传输。
[0026]服务器根据终端的在线状态,决定是不是保持终端与服务器的长连接状态。终端与服务器保持长连接状态,需要占用服务器与网络链路的资源,长连接的个数越多对服务器及网络链路的压力越大。而服务器与网络链路的资源有限,为了减小服务器与网络链路得压力,切断离线终端与服务器的连接。
[0027]检测终端当前的在线状态,即检测终端反馈的在线状态信息。检测当前时间与最近一次接收到在线状态信息的时间间隔是否小于预设时间间隔,若小于预设时间间隔,则终端在线状态为在线,若大于预设时间间隔,则终端在线状态为离线。每经过预设时长,检测一次终端当前的在线状态,预设时长大于预设时间间隔。
[0028]102、将当前的在线状态与上一次检测的在线状态进行比对。
[0029]比对当前的在线状态与上一次检测的在线状态,S卩比对检测到的所有终端的在线状态是否有变化。终端的在线状态,是针对同一个终端而言的。一个终端一个终端的做比对,直到所有反馈状态信息的终端都比对完成
[0030]103、若终端的在线状态发生改变,则修改终端的状态信息。
[0031]在步骤102比对终端的在线状态信息之后,修改发生改变的终端状态信息。终端的在线状态发生改变包括,终端从在线状态转为离线状态,终端从离线状态转为在线状态。
[0032]104、将修改后的状态信息发送给数据库。
[0033]将发生改变的状态信息发送给数据库,与终端发送的在线状态信息做对比,一方面,发送状态信息的频率低于接收心跳包的频率,另一方面,发送状态信息改变的修改后的终端状态信息,都减少了传输终端在线状态的数据量。
[0034]本发明实施例提供的获取终端在线的方法,能够通过检测终端当前的在线状态,将当前的在线状态与上一次检测的在线状态进行对比,根据终端在线状态的改变,修改终端的状态信息,将修改后的状态信息发送给数据库。与现有技术相比,本发明实施例仅将在线状态发生改变的终端的状态信息发送给数据库,而不是将所有终端的状态信息发送给数据库,能够减少向数据库发送的数据量,进而降低数据库负荷压力。
[0035]进一步地,图1所示方法的细化和扩展,本发明实施例还提供了另一种获取终端在线状态的方法,如图2所示,该方法包括:
[0036]201、检测终端当前的在线状态。
[0037]检测终端当前的在线状态,即检测当前时刻的心跳包。在检测之前,接收终端按照预设心跳间隔多次上报的心跳包;若接收最后一个心跳包的时刻相距本次检测时刻的时长未超过预设心跳间隔,则终端当前的在线状态为“在线”;若接收最后一个心跳包的时刻相距本次检测时刻的时长超过预设心跳间隔,则终端当前的在线状态为“离线”。根据预设心跳间隔,终端向服务器发送心跳包,若有心跳包说明终端在
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1