终端用户状态获取方法、装置和系统与流程

文档序号:11931919阅读:239来源:国知局
终端用户状态获取方法、装置和系统与流程

本发明涉及信息交互技术领域,尤其涉及一种终端用户状态获取方法、装置和系统。



背景技术:

随着网络通信技术的发展,交互式网络电视IPTV依托于IP宽带网络,得到了快速的发展。作为一种新兴的传媒产业,IPTV具有交互性和实时性,将电视服务和互联网浏览、电子邮件收发及多种在线信息咨询、娱乐、教育、商务功能成功的进行了结合,使用户得到了高质量的数字媒体服务,受到了广大消费者的青睐。

随着IPTV节目与营销活动的增多,海内、外的IPTV市场发展迅速,单个家庭就存在多个IPTV终端,如STB(Set-Top-Box,机顶盒)、PC(personal computer,个人计算机)、Pad、手机等。为更准确地针对在线用户进行运维统计,广告、消息通知、投票等增值业务的推送,需获知IPTV当前用户的在线状态。

目前,主要通过终端与IPTV的门户系统EPG(Electronic Program Guide,电子节目指南)使用心跳机制保活,获取用户的在线状态。用户登录后,EPG获取用户的信息并存入哈希表hashmap。EPG与终端的心跳周期一般为15分钟,每次心跳后,EPG将终端的登录时间更新为最近一次心跳时间,并存入hashmap。EPG定时比较当前时间与终端的最近一次登录时间,若时间间隔大于16分钟,则认为当前终端用户离线。

由于EPG主要用于IPTV节目信息数据的同步、展示和播控等,是IPTV业务性能的关键部分,综合EPG的性能,使得EPG与终端的心跳交互时间间隔较长,导致用户在线状态更新的延迟,不能实时获知用户的在线状态。



技术实现要素:

本发明的主要目的在于提供一种终端用户状态获取方法、装置和系统,旨在解决用户在线状态更新延迟的技术问题。

为实现上述目的,本发明提供一种终端用户状态获取方法,所述终端用户状态获取方法包括以下步骤:

接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端;

根据预设的心跳周期,与所述终端建立心跳消息交互;

根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态。

优选的,所述接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端的步骤包括:

接收终端的接入请求,根据所述接入请求获取终端信息;

根据所述终端信息,校验所述终端是否为合法接入;

若所述终端为合法接入,则接入所述终端。

优选的,所述根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态的步骤包括:

根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态;

若所述心跳消息交互状态为在所述心跳周期内,收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为在线;

若所述心跳消息交互状态为在所述心跳周期内和预设的超时时间内,均未收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为离线。

优选的,所述根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态的步骤之后,还包括:

若所述心跳消息交互状态为收到所述终端的离线消息,则设置所述终端的状态为离线。

优选的,所述根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态的步骤之后,还包括:

若所述心跳消息交互状态为向所述终端推送心跳消息异常,且在预设的 异常时间内,成功恢复向所述终端心跳消息的推送,则向所述终端发送心跳接入消息,并转入执行步骤:根据预设的心跳周期,与所述终端建立心跳消息交互。

此外,为实现上述目的,本发明还提供一种终端用户状态获取装置,所述终端用户状态获取装置包括:

接入模块,用于接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端;

心跳模块,用于根据预设的心跳周期,与所述终端建立心跳消息交互;

状态模块,用于根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态。

优选的,所述接入模块包括:

接收单元,用于接收终端的接入请求,根据所述接入请求获取终端信息;

校验单元,用于根据所述终端信息,校验所述终端是否为合法接入;

接入单元,用于若所述终端为合法接入,则接入所述终端。

优选的,其特征在于,所述状态模块包括:

交互单元,用于根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态;

设置单元,用于若所述心跳消息交互状态为在所述心跳周期内,收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为在线;若所述心跳消息交互状态为在所述心跳周期内和预设的超时时间内,均未收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为离线。

优选的,所述设置单元还用于,

若所述心跳消息交互状态为收到所述终端的离线消息,则设置所述终端的状态为离线。

优选的,所述状态模块还包括:

异常单元,用于若所述心跳消息交互状态为向所述终端推送心跳消息异常,且在预设的异常时间内,成功恢复向所述终端心跳消息的推送,则向所述终端发送心跳接入消息。

此外,为实现上述目的,本发明还提供一种终端用户状态获取系统,所述终端用户状态获取系统包括消息交互系统MES系统、终端和交互式网络电视IPTV系统,其中:

所述MES系统,包括接入服务器和推送服务器;

所述接入服务器,用于接收终端的接入请求,根据所述接入请求获取终端信息;根据所述终端信息,校验所述终端是否为合法接入;若所述终端为合法接入,则接入所述终端;

所述推送服务器,用于根据预设的心跳周期,与所述终端建立心跳消息交互;根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态;

所述终端,用于向所述MES系统发起接入请求,与所述MES系统建立心跳消息交互;

所述IPTV系统,用于向所述MES系统提供所述终端是否合法接入的校验服务。

本发明实施例提出的一种终端用户状态获取方法、装置和系统,通过MES系统接收终端的接入请求,根据接入请求获取终端信息并接入终端;然后,根据预设的心跳周期,与终端建立心跳消息交互;根据终端信息和心跳消息交互状态,更新终端的状态。本发明灵活设置心跳周期,通过MES系统与终端的心跳消息交互,可以及时获取终端用户的在线状态,并进行心跳消息交互异常的处理,实现了对终端用户进行心跳保活,实时获取终端用户的状态。

附图说明

图1为本发明终端用户状态获取方法第一实施例的流程示意图;

图2为本发明终端用户状态获取方法第二实施例的流程示意图;

图3为本发明终端用户状态获取方法第三实施例的流程示意图;

图4为本发明终端用户状态获取方法第四实施例的流程示意图;

图5为本发明终端用户状态获取方法第五实施例的流程示意图;

图6为本发明终端用户状态获取装置第一实施例的功能模块示意图;

图7为本发明终端用户状态获取装置第二实施例的功能模块示意图;

图8为本发明终端用户状态获取装置第三实施例、第四实施例的功能模块示意图;

图9为本发明终端用户状态获取装置第五实施例的功能模块示意图;

图10为本发明终端用户状态获取系统第一实施例的模块示意图;

图11为本发明实施例中IPTV终端用户状态的获取应用场景流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端;根据预设的心跳周期,与所述终端建立心跳消息交互;根据所述终端信息和所述心跳消息交互状态,更新所述终端的状态。

由于现有技术获取终端用户的状态,主要通过IPTV系统与终端的心跳交互,但是由于EPG的性能导致心跳消息交互时间间隔较长,终端用户在线状态更新延迟,不能实时获知终端用户的在线状态。

本发明提供一种解决方案,提出一种MES系统,通过与终端用户进行心跳保活,能够及时进行终端用户在线状态的更新,实时获取终端用户的状态。

参照图1,本发明终端用户状态获取方法第一实施例提供一种终端用户状态获取方法,所述终端用户状态获取方法包括:

步骤S10、接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端。

本发明实施例通过MES系统(Message Exange System,信息交互系统)获取终端用户的实时状态,主要应用于交互式网络电视IPTV终端用户实时状 态的更新或统计,当然也可以用于其他用户实时状态的更新或统计,可根据实际需要灵活应用。IPTV终端可以是STB(Set-Top-Box,机顶盒)、PC(personal computer,个人计算机)、Pad、手机等。

具体的,作为一种实施方式,MES系统预先在IPTV系统配置域地址Domain,Domain为当前终端接入MES系统的地址和端口。

IPTV终端用户在启动后,向IPTV系统发起登录请求。IPTV系统校验终端用户的账号,若当前终端用户为合法用户,则允许当前终端用户成功登录。然后,IPTV系统向当前终端下发Domain。

终端用户成功登录IPTV系统后,终端获取IPTV系统下发的Domain,并根据Domain向MES系统发起登录注册请求。

MES系统包括接入服务器和推送服务器。其中,接入服务器可以用于接入终端,与IPTV系统交互,可以有备用接入服务器,Domain即为指向接入服务器的域地址;推送服务器可以用于与终端建立心跳消息交互,进行保活。

接入服务器接收终端的登录注册请求,也即接入请求,获取终端信息。

其中,终端发送的注册上报请求携带有当前终端的信息。其中,终端信息可以是终端用户的账户信息,用于标识不同的终端用户,可以根据账户信息唯一的确定当前终端用户。终端信息当然也可以是其他可以标识不同终端用户的信息,可根据实际需要灵活设置。

接入服务器通过当前终端的接入请求,接入终端,并给当前终端分配推送服务器。为保证负载均衡,接入服务器根据当前推送服务器的负载状况,选择当前负载最轻的推送服务器分配给当前终端。接入服务器将此负载最轻推送服务器的域地址返回给当前终端。

步骤S20、根据预设的心跳周期,与所述终端建立心跳消息交互。

在接收终端的接入请求,并获取终端信息后,推送服务器与终端建立心跳消息交互。

具体的,作为一种实施方式,终端根据接入服务器返回的域地址,向推送服务器发起注册上报请求。终端发送的注册上报请求携带有当前终端的信息。

推送服务器接收终端的注册上报请求,对终端进行注册,获取并存储终 端信息。

注册成功后,推送服务器根据预设的心跳周期,开始与终端进行心跳消息交互。

其中,推送服务器与终端建立的心跳可以是HTTP协议心跳,也可以是UDP协议心跳,可根据终端的实际情况灵活设置,例如:PC终端采用HTTP协议心跳,则推送服务器与PC终端建立HTTP链路;STB、Pad和手机采用UDP协议心跳,则推送服务器与STB、Pad或手机建立UDP链路。

在终端与推送服务器的心跳消息交互建立后,根据预设的心跳周期,推送服务器定时向终端推送心跳消息。终端在收到推送服务器推送的心跳消息后,在预设的心跳周期内,向推送服务器发送心跳消息,进行心跳消息交互。

需要说明的是,预设的心跳周期指预设的时间内,MES系统与终端预设的心跳消息交互次数,为可调配的,例如:设置心跳周期为1分钟1次,则每隔1分钟,推送服务器与终端进行一次心跳消息的交互。

其中,心跳消息为预设规范的消息格式,可预先配置心跳消息的字段格式,并进行灵活设置。

步骤S30、根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态。

在推送服务器与终端建立心跳消息交互后,推送服务器根据终端信息和实时的心跳消息交互状态,实时更新终端的状态。

具体的,作为一种实施方式,推送服务器根据心跳消息交互状态,设置或更新终端信息对应的终端状态。

若在心跳周期内,推送服务器与终端成功进行心跳消息交互,则推送服务器判定当前终端用户在线,并将当前终端信息对应的终端状态设置为在线。

若在心跳周期内,推送服务器与终端未成功进行心跳消息交互,则认为当前心跳消息交互异常。若推送服务器的心跳消息推送正常,在预设的超时时间内,若推送服务器仍然未能与终端成功进行心跳消息交互,则推送服务器判定当前终端用户离线,并将当前终端信息对应的终端状态更新为离线。

由此,推送服务器可以实时获取终端的状态。

在本实施例中,MES系统接收终端的接入请求,根据接入请求接入终端并获取终端信息;然后,根据预设的心跳周期,与终端建立心跳消息交互;根据终端信息和心跳消息交互状态,更新终端的状态。本实施例灵活设置心跳周期,通过MES系统与终端的心跳消息交互,可以及时获取终端用户的在线状态,并进行心跳消息交互异常的处理,实现了对终端用户进行心跳保活,实时获取终端用户的状态。

进一步的,参照图2,本发明终端用户状态获取方法第二实施例提供一种终端用户状态获取方法,基于上述图1所示的实施例,所述步骤S10包括:

步骤S11、接收终端的接入请求,根据所述接入请求获取终端信息。

在终端向MES系统发送登录注册请求,也即接入请求后,MES系统接收终端的接入请求。

具体的,作为一种事实方式,接入服务器接收终端的登录注册请求。终端发送的注册上报请求携带有当前终端的信息。

其中,终端信息可以是终端用户的账户信息,用于标识不同的终端用户,可以根据账户信息唯一的确定当前终端用户。终端信息当然也可以是其他可以标识不同终端用户的信息,可根据实际需要灵活设置。

步骤S12、根据所述终端信息,校验所述终端是否为合法接入。

接入服务器向IPTV系统发起校验请求,由IPTV系统校验当前终端是否为合法接入。其中,接入服务器发送的校验请求携带有当前终端的信息,用于IPTV系统校验,例如,IPTV系统根据当前终端用户的账号信息,判断当前终端用户是否为合法用户。

IPTV系统完成校验后将校验结果返回给接入服务器。

若当前终端用户为IPTV系统的合法用户,则接入服务器判定当前终端为合法接入;若当前终端用户为IPTV系统的非法用户,则接入服务器判定当前终端为非法接入。

由此,接入服务器得到当前终端是否为合法接入的判定结果。

步骤S13、若所述终端为合法接入,则接入所述终端。

若当前终端为合法接入,则接入服务器允许当前终端的登录注册,接入当前终端。

然后,根据当前推送服务器的负载状况,选择当前负载最轻的推送服务器分配给当前终端。接入服务器将此负载最轻推送服务器的域地址返回给当前终端。

终端根据接入服务器返回的域地址,向推送服务器发起注册上报请求。终端发送的注册上报请求携带有当前终端的信息。

推送服务器接收终端的注册上报请求,获取终端信息,并存储获取的终端信息。

然后,推送服务器根据预设的心跳周期,与当前终端建立心跳消息交互,实时获取当前终端的状态。

若当前终端为非法接入,则接入服务器不通过当前终端的登录注册请求,拒绝当前终端的本次接入请求。

在本实施例中,MES系统接收终端的接入请求,根据接入请求获取终端信息;根据终端信息,校验终端是否为合法接入;若终端为合法接入,则接入终端。本实施例通过对接入终端的校验,保障了MES系统的安全性,避免服务器资源的占用,提高了终端用户实时状态获取的效率。

进一步的,参照图3,本发明终端用户状态获取方法第三实施例提供一种终端用户状态获取方法,基于上述图1或图2所示的实施例(本发明以图2为例),所述步骤S30包括:

步骤S31、根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态。

在终端与推送服务器的心跳消息交互建立后,推送服务器获取终端的心跳消息交互状态。

具体的,作为一种实施方式,根据心跳周期,推送服务器定时向当前终端推送心跳消息。

然后,根据当前终端响应的心跳消息发送状态,获取当前终端的心跳交互状态。

若在心跳周期内,推送服务器正常推送心跳消息,且收到当前终端响应的心跳消息,则当前终端的心跳消息交互状态正常。

若在心跳周期内,推送服务器正常推送心跳消息,但未收到当前终端响应的心跳消息,则当前终端的心跳消息交互状态异常,例如网络延迟、终端被动强制离线等异常情况。推送服务器记录当前终端心跳消息交互发生异常的时间节点。

由此,推送服务器得到当前终端的心跳交互状态。

步骤S32、若所述心跳消息交互状态为在所述心跳周期内,收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为在线。

若在心跳周期内,推送服务器正常推送心跳消息,且收到当前终端响应的心跳消息,当前终端的心跳消息交互状态正常。推送服务器根据当前终端的终端信息,将当前终端信息对应的状态设置为在线。

若在当前终端心跳消息交互发生异常的时间节点后、预设的超时时间内,推送服务器再次收到当前终端响应的心跳消息,则判定当前终端的交互状态正常,保持当前终端的状态为在线,过滤因网络阻塞等原因导致的个别心跳周期异常。

步骤S33、若所述心跳消息交互状态为在所述心跳周期内和预设的超时时间内,均未收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为离线。

若在心跳周期内,推送服务器正常推送心跳消息,但未收到当前终端响应的心跳消息,当前终端的心跳消息交互状态异常,例如终端被迫强制离线。

若在当前终端心跳消息交互发生异常的时间节点起、预设的超时时间后,推送服务器未收到当前终端响应的心跳消息,则推送服务器判定当前终端离线。然后,推送服务器根据当前终端信息,将当前终端信息对应的状态设置为离线。

需要说明的是,预设的超时时间为终端的异常时间,若超过预设的超时时间未收到终端响应的心跳消息,则判定终端异常。预设的超时时间可根据实际需要灵活设置。

由此,推送服务器实时获取到终端的状态。

在本实施例中,MES系统根据心跳周期,向终端推送心跳消息并接收终端响应的心跳消息,获取心跳消息交互状态;若心跳消息交互状态为在心跳周期内,收到终端响应的心跳消息,则根据当前终端信息,设置当前终端的状态为在线;若心跳消息交互状态为在心跳周期内和预设的超时时间内,均未收到终端响应的心跳消息,则根据当前终端信息,设置当前终端的状态为离线,由此MES系统获取终端的状态。本实施例根据终端的心跳消息交互状态对终端进行心跳保活,并根据终端信息实时更新终端的状态,实现了实时获取终端的状态。

进一步的,参照图4,本发明终端用户状态获取方法第四实施例提供一种终端用户状态获取方法,基于上述图3所示的实施例,所述步骤S31之后,还包括:

步骤S34、若所述心跳消息交互状态为收到所述终端的离线消息,则设置所述终端的状态为离线。

在终端与推送服务器建立心跳消息交互后,作为一种实施方式,推送服务器向终端推送心跳消息并接收终端响应的心跳消息,获取终端的心跳消息交互状态。

若心跳消息交互状态为终端主动离线,则终端主动向推送服务器发送离线消息。

推送服务器收到终端的离线消息后,根据当前终端的信息,更新当前终端信息对应的终端的状态为离线,结束与当前终端的心跳消息交互。

在本实施例,若心跳消息交互状态为MES系统收到终端的离线消息,则设置终端的状态为离线。本实施例在终端主动离线后,实时更新终端的状态,实现了终端实时状态的获取。

进一步的,参照图5,本发明终端用户状态获取方法第五实施例提供一种终端用户状态获取方法,基于上述图4所示的实施例,所述步骤S31之后, 还包括:

步骤S35、若所述心跳消息交互状态为向所述终端推送心跳消息异常,且在预设的异常时间内,成功恢复向所述终端心跳消息的推送,则向所述终端发送心跳接入消息,并转入执行步骤S20。

在MES系统服务发生异常导致心跳消息交互状态异常时,例如推送服务器向终端推送心跳消息异常,无法向终端成功推送心跳消息,具体的,作为一种实施方式,若在预设的异常时间内,MES系统服务恢复正常,能够成功向终端推送心跳消息,则推送服务器在心跳消息的推送恢复正常后,向终端发送接入消息,例如,接入消息包括字段Result=1(Result=0,意为心跳消息交互成功;Result=1,意为终端申请重新接入),使终端重新接入推送服务器。

终端收到推送服务器的接入消息后,向推送服务器发起注册接入请求。推送服务器根据预设的心跳周期,与终端建立心跳消息交互。

若在预设的异常时间内,MES系统服务未恢复正常,则终端向MES系统接入服务器发送登录注册请求,也即接入请求,重新获取MES系统服务。

需要说明的是,预设的异常时间为MES系统服务的异常时间,若MES系统服务的异常时间超过预设的异常时间,则判定MES系统服务异常。预设的异常时间可根据实际需要灵活设置。

在本实施例中,若心跳消息交互状态为MES系统向终端推送心跳消息异常,且在预设的异常时间内,MES系统成功恢复向终端心跳消息的推送,则向终端发送心跳接入消息,根据预设的心跳周期,重新与终端建立心跳消息交互,避免终端再次重复接入MES系统,实现了终端用户实时状态获取过程中,短暂异常情况的处理,提高了终端用户实时状态获取的处理效率。

参照图6,本发明终端用户状态获取装置第一实施例提供一种终端用户状态获取装置,所述终端用户状态获取装置包括:

接入模块100,用于接收终端的接入请求,根据所述接入请求获取终端信息并接入所述终端。

本发明实施例通过终端用户状态获取装置获取终端用户的实时状态,终端用户状态获取装置位于MES系统(Message Exange System,信息交互系统), 主要应用于交互式网络电视IPTV终端用户实时状态的更新或统计,当然也可以用于其他用户实时状态的更新或统计,可根据实际需要灵活应用。IPTV终端可以是STB(Set-Top-Box,机顶盒)、PC(personal computer,个人计算机)、Pad、手机等。

具体的,作为一种实施方式,接入模块100预先在IPTV系统配置域地址Domain,Domain为当前终端接入接入模块100的地址和端口。

IPTV终端用户在启动后,向IPTV系统发起登录请求。IPTV系统校验终端用户的账号,若当前终端用户为合法用户,则允许当前终端用户成功登录。然后,IPTV系统向当前终端下发Domain。

终端用户成功登录IPTV系统后,终端获取IPTV系统下发的Domain,并根据Domain向接入模块100发起登录注册请求。

接入模块100接收终端的登录注册请求,也即接入请求,获取终端信息。

其中,终端发送的注册上报请求携带有当前终端的信息。其中,终端信息可以是终端用户的账户信息,用于标识不同的终端用户,可以根据账户信息唯一的确定当前终端用户。终端信息当然也可以是其他可以标识不同终端用户的信息,可根据实际需要灵活设置。

接入模块100通过当前终端的接入请求,接入终端,并给当前终端分配心跳模块200。为保证负载均衡,接入模块100根据当前心跳模块200的负载状况,选择当前负载最轻的心跳模块200分配给当前终端。接入模块100将此负载最轻心跳模块200的域地址返回给当前终端。

心跳模块200,用于根据预设的心跳周期,与所述终端建立心跳消息交互。

在接收终端的接入请求,并获取终端信息后,心跳模块200与终端建立心跳消息交互。

具体的,作为一种实施方式,终端根据接入服务器返回的域地址,向心跳模块200发起注册上报请求。终端发送的注册上报请求携带有当前终端的信息。

心跳模块200接收终端的注册上报请求,对终端进行注册,获取并存储终端信息。

注册成功后,心跳模块200根据预设的心跳周期,开始与终端进行心跳 消息交互。

其中,心跳模块200与终端建立的心跳可以是HTTP协议心跳,也可以是UDP协议心跳,可根据终端的实际情况灵活设置,例如:PC终端采用HTTP协议心跳,则心跳模块200与PC终端建立HTTP链路;STB、Pad和手机采用UDP协议心跳,则心跳模块200与STB、Pad或手机建立UDP链路。

在终端与心跳模块200的心跳消息交互建立后,根据预设的心跳周期,心跳模块200定时向终端推送心跳消息。终端在收到心跳模块200推送的心跳消息后,在预设的心跳周期内,向心跳模块200发送心跳消息,进行心跳消息交互。

需要说明的是,预设的心跳周期指预设的时间内,心跳模块200与终端预设的心跳消息交互次数,为可调配的,例如:设置心跳周期为1分钟1次,则每隔1分钟,心跳模块200与终端进行一次心跳消息的交互。

其中,心跳消息为预设规范的消息格式,可预先配置心跳消息的字段格式,并进行灵活设置。

状态模块300,用于根据所述终端信息和所述心跳消息交互状态,获取所述终端的状态。

在心跳模块200与终端建立心跳消息交互后,状态模块300根据终端信息和实时的心跳消息交互状态,实时更新终端的状态。

具体的,作为一种实施方式,状态模块300根据心跳消息交互状态,设置或更新终端信息对应的终端状态。

若在心跳周期内,心跳模块200与终端成功进行心跳消息交互,则状态模块300判定当前终端用户在线,并将当前终端信息对应的终端状态设置为在线。

若在心跳周期内,心跳模块200与终端未成功进行心跳消息交互,则状态模块300认为当前心跳消息交互异常。若心跳模块200的心跳消息推送正常,在预设的超时时间内,若心跳模块200仍然未能与终端成功进行心跳消息交互,则状态模块300判定当前终端用户离线,并将当前终端信息对应的终端状态更新为离线。

由此,状态模块300可以实时获取终端的状态。

在本实施例中,接入模块100接收终端的接入请求,根据接入请求接入终端并获取终端信息;然后,心跳模块200根据预设的心跳周期,与终端建立心跳消息交互;状态模块300根据终端信息和心跳消息交互状态,更新终端的状态。本实施例灵活设置心跳周期,通过终端用户状态获取装置与终端的心跳消息交互,可以及时获取终端用户的在线状态,并进行心跳消息交互异常的处理,实现了对终端用户进行心跳保活,实时获取终端用户的状态。

进一步的,参照图7,本发明终端用户状态获取装置第二实施例提供一种终端用户状态获取装置,基于上述图6所示的实施例,所述接入模块100包括:

接收单元110,用于接收终端的接入请求,根据所述接入请求获取终端信息。

在终端向MES系统发送登录注册请求,也即接入请求后,接收单元110接收终端的接入请求。

具体的,作为一种事实方式,接收单元110接收终端的登录注册请求。终端发送的注册上报请求携带有当前终端的信息。

其中,终端信息可以是终端用户的账户信息,用于标识不同的终端用户,可以根据账户信息唯一的确定当前终端用户。终端信息当然也可以是其他可以标识不同终端用户的信息,可根据实际需要灵活设置。

校验单元120,用于根据所述终端信息,校验所述终端是否为合法接入。

校验单元120向IPTV系统发起校验请求,由IPTV系统校验当前终端是否为合法接入。其中,校验单元120发送的校验请求携带有当前终端的信息,用于IPTV系统校验,例如,IPTV系统根据当前终端用户的账号信息,判断当前终端用户是否为合法用户。

IPTV系统完成校验后将校验结果返回给校验单元120。

若当前终端用户为IPTV系统的合法用户,则校验单元120判定当前终端为合法接入;若当前终端用户为IPTV系统的非法用户,则校验单元120判定当前终端为非法接入。

由此,校验单元120得到当前终端是否为合法接入的判定结果。

接入单元130,用于若所述终端为合法接入,则接入所述终端。

若当前终端为合法接入,则接入单元130允许当前终端的登录注册,介入当前终端。

然后,接入单元130根据当前心跳模块200的负载状况,选择当前负载最轻的心跳模块200分配给当前终端。接入单元130将此负载最轻心跳模块200的域地址返回给当前终端。

终端根据接入单元130返回的域地址,向心跳模块200发起注册上报请求。终端发送的注册上报请求携带有当前终端的信息。

心跳模块200接收终端的注册上报请求,获取终端信息,并存储获取的终端信息。

然后,心跳模块200根据预设的心跳周期,与当前终端建立心跳消息交互,实时获取当前终端的状态。

若当前终端为非法接入,则接入单元130不通过当前终端的登录注册请求,拒绝当前终端的本次接入请求。

在本实施例中,接收单元110接收终端的接入请求,根据接入请求获取终端信息;检验单元120根据终端信息,校验终端是否为合法接入;若终端为合法接入,则接入单元130接入终端。本实施例通过对接入终端的校验,保障了终端用户实时状态获取装置的安全性,避免服务器资源的占用,提高了终端用户实时状态获取的效率。

进一步的,参照图8,本发明终端用户状态获取装置第三实施例提供一种终端用户状态获取装置,基于上述图6或图7所示的实施例(本实施例以图7为例),所述状态模块300包括:

交互单元310,用于根据所述心跳周期,向所述终端推送心跳消息并接收所述终端响应的心跳消息,获取所述心跳消息交互状态。

在终端与心跳模块200的心跳消息交互建立后,状态模块300获取终端的心跳交互状态。

具体的,作为一种实施方式,根据心跳周期,交互单元310定时向当前终端推送心跳消息。

然后,根据当前终端响应的心跳消息发送状态,获取当前终端的心跳交互消息状态。

若在心跳周期内,交互单元310正常推送心跳消息,且收到当前终端响应的心跳消息,则当前终端的心跳消息交互状态正常。

若在心跳周期内,交互单元310正常推送心跳消息,但未收到当前终端响应的心跳消息,则当前终端的心跳消息交互状态异常,例如网络延迟、终端被动强制离线等异常情况。交互单元310记录当前终端心跳消息交互发生异常的时间节点。

由此,交互单元310得到当前终端的心跳交互状态。

设置单元320,用于若所述心跳消息交互状态为在所述心跳周期内,收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为在线;若所述心跳消息交互状态为在所述心跳周期内和预设的超时时间内,均未收到所述终端响应的心跳消息,则根据所述终端信息,设置所述终端的状态为离线。

若在心跳周期内,交互单元310正常推送心跳消息,且收到当前终端响应的心跳消息,当前终端的心跳消息交互状态正常。设置单元320根据当前终端的终端信息,将当前终端信息对应的状态设置为在线。

若在当前终端心跳消息交互发生异常的时间节点后、预设的超时时间内,交互单元310再次收到当前终端响应的心跳消息,则判定当前终端的交互状态正常,设置单元320保持当前终端的状态为在线,过滤因网络阻塞等原因导致的个别心跳周期异常。

若在心跳周期内,交互单元310正常推送心跳消息,但未收到当前终端响应的心跳消息,当前终端的心跳消息交互状态异常,例如终端被迫强制离线。

若在当前终端心跳消息交互发生异常的时间节点起、预设的超时时间后,交互单元310未收到当前终端响应的心跳消息,则判定当前终端离线。然后,设置单元320根据当前终端信息,将当前终端信息对应的状态设置为离线。

需要说明的是,预设的超时时间为终端的异常时间,若超过预设的超时时间未收到终端响应的心跳消息,则判定终端异常。预设的超时时间可根据实际需要灵活设置。

由此,设置单元320实时获取到终端的状态。

在本实施例中,交互单元310根据心跳周期,向终端推送心跳消息并接收终端响应的心跳消息,获取心跳消息交互状态;若心跳消息交互状态为在心跳周期内,收到终端响应的心跳消息,则设置单元320根据当前终端信息,设置当前终端的状态为在线;若心跳消息交互状态为在心跳周期内和预设的超时时间内,均未收到终端响应的心跳消息,则设置单元320根据当前终端信息,设置当前终端的状态为离线,由此MES系统获取终端的状态。本实施例终端用户实时状态获取装置根据终端的心跳消息交互状态对终端进行心跳保活,并根据终端信息实时更新终端的状态,实现了实时获取终端的状态。

进一步的,参照图8,本发明终端用户状态获取装置第四实施例提供一种终端用户状态获取装置,基于上述图8所示的本发明终端用户状态获取装置第三实施例,所述设置单元320还用于,

若所述心跳消息交互状态为收到所述终端的离线消息,则设置所述终端的状态为离线。

在终端与心跳模块200建立心跳消息交互后,作为一种实施方式,交互单元310向终端推送心跳消息并接收终端响应的心跳消息,获取终端的心跳消息交互状态。

若心跳消息交互状态为终端主动离线,则终端主动向交互单元310发送离线消息。

交互单元310收到终端的离线消息后,设置单元320根据当前终端的信息,更新当前终端信息对应的终端的状态为离线,结束与当前终端的心跳消息交互。

在本实施例,若心跳消息交互状态为交互单元310收到终端的离线消息,则设置单元320设置终端的状态为离线。本实施例在终端主动离线后,终端 用户实时状态获取装置实时更新终端的状态,实现了终端实时状态的获取。

进一步的,参照图9,本发明终端用户状态获取装置第五实施例提供一种终端用户状态获取装置,基于上述图8所示的本发明终端用户状态获取装置第四实施例,所述状态模块300还包括:

异常单元330,用于若所述心跳消息交互状态为向所述终端推送心跳消息异常时,且在预设的异常时间内,成功恢复向所述终端心跳消息的推送,则向所述终端发送心跳接入消息。

在交互单元310发生异常导致心跳消息交互状态异常时,例如交互单元310向终端推送心跳消息异常,无法向终端成功推送心跳消息,具体的,作为一种实施方式,若在预设的异常时间内,交互单元310服务恢复正常,能够成功向终端推送心跳消息,则在心跳消息的推送恢复正常后,异常单元330向终端发送接入消息,例如,接入消息包括字段Result=1(Result=0,意为心跳消息交互成功;Result=1,意为终端申请重新接入),使终端重新接入心跳模块200。

终端收到异常单元330的接入消息后,向心跳模块200发起注册接入请求。心跳模块200根据预设的心跳周期,与终端建立心跳消息交互。

若在预设的异常时间内,交互单元310服务未恢复正常,则终端向接入模块100发送登录注册请求,也即接入请求,重新获取服务。

需要说明的是,预设的异常时间为交互单元310的异常时间,若交互单元310的异常时间超过预设的异常时间,则判定交互单元310服务异常。预设的异常时间可根据实际需要灵活设置。

在本实施例中,若心跳消息交互状态为交互单元310向终端推送心跳消息异常,若在预设的异常时间内,交互单元310成功恢复向终端心跳消息的推送,则异常单元330向终端发送心跳接入消息,心跳模块200根据预设的心跳周期,重新与终端建立心跳消息交互,避免终端再次重复接入接入模块100,实现了终端用户实时状态获取过程中,短暂异常情况的处理,提高了终端用户实时状态获取的处理效率。

参照图10,本发明终端用户状态获取系统提供一种终端用户状态获取系统,所述终端用户状态获取系统包括消息交互系统MES系统A、终端B和交互式网络电视IPTV系统C,其中:

所述MES系统A,包括接入服务器A1和推送服务器A2;

所述接入服务器A1,用于接收终端B的接入请求,根据所述接入请求获取终端信息;根据所述终端信息,校验所述终端B是否为合法接入;若所述终端B为合法接入,则接入所述终端B;

所述推送服务器A2,用于根据预设的心跳周期,与所述终端B建立心跳消息交互;根据所述终端B信息和所述心跳消息交互状态,获取所述终端B的状态。

本发明实施例通过MES系统A(Message Exange System,信息交互系统)获取IPTV终端B用户实时状态。终端B登录IPTV系统C时,主动向MES系统A注册接入,接入成功后通过心跳消息保活,终端B退出登录时主动向MES系统A发离线消息,MES系统A将终端B状态置为离线。

具体的,作为一种实施方式,MES系统A包括接入服务器A1和推送服务器A2。

参照图11,以IPTV终端用户状态的获取进行举例说明。

接入服务器A1,可以包括主接入服务器和备用接入服务器,接收终端B的接入请求,并获取终端B的信息。

然后,接入服务器A1根据终端B的信息,向IPTV系统C发送校验请求。

IPTV系统C根据终端B的信息,校验终端B是否为合法用户,并将校验结果返回给接入服务器A1。

若终端B为非法用户,则终端B为非法接入,接入服务器A1拒绝终端B的接入请求。

若终端B为合法用户,则终端B为合法接入,接入服务器A1,响应终端B的接入请求,通过终端B的接入请求,接入终端B。

接入服务器A1推送服务器A2进行负载均衡,根据当前推送服务器A2的负载状况,选择当前负载最轻的推送服务器分配给终端B,用于与终端B建立心跳消息交互。接入服务器A1将分配的推送服务器A2的域地址Domain返回给终端B。

终端B根据收到的推送服务器A2的域地址Domain,向推送服务器A2发送注册上报请求。

推送服务器A2接收终端B的注册上报请求后,根据终端B的注册上报请求,与终端B建立心跳消息交互,响应终端B的注册上报请求。推送服务器A2根据预设的心跳周期,与终端B保持心跳消息交互。

推送服务器A2根据终端B的信息和心跳消息交互状态,获取终端B的状态。例如,推送服务器A2向终端B发送心跳消息,在心跳周期内,收到终端B响应的心跳消息,则根据终端B的信息设置终端B的状态为在线;若在心跳周期内和预设的超时时间内,均未收到终端B响应的心跳消息,则根据终端B的信息,更新终端B的状态为离线。

同时,若推送服务器A2出现短暂的异常,异常时间在预设的异常时间范围内,则推送服务器A2在恢复服务后,向终端B发送心跳接入消息,与终端B建立心跳消息交互,进行心跳消息保活。

接入服务器A1还用于接收第三方平台发来的待推送的消息,由推送服务器A2将消息推送给终端B。

所述终端B,用于向所述MES系统A发起接入请求,与所述MES系统A建立心跳消息交互。

在本发明应用于IPTV系统C的终端用户状态获取时,终端B包括STB(Set-Top-Box,机顶盒)、PC(personal computer,个人计算机)、Pad、手机等能够接入IPTV系统C的终端。

终端B在开机启动后,向IPTV系统C发起登录请求,登录成功后,获取IPTV系统C返回的MES系统A的域地址Domain。

然后,终端B根据Domain向MES系统A发送登录注册请求,也即接入请求,请求接入MES系统A。终端B发送的接入请求携带有终端B的信息。

在终端B的接入请求通过后,根据MES系统A返回的域地址,向MES系统A发送注册上报请求。终端B发送的注册上报请求携带有终端B的信息。

MES系统A与终端B的建立心跳消息交互后,终端B按照预设的心跳周期,向MES系统A发送心跳消息,保持与MES系统A的心跳消息交互,进行心跳消息保活。

若终端B超过预设的响应时间,未收到MES系统A的心跳消息,则向接入服务器A1发出重新接入请求,由接入服务器A1重新分配的推送服务器A2,与终端B建立心跳消息互动。其中,预设的响应时间可根据实际需要灵活设置。

所述IPTV系统C,用于向所述MES系统A提供所述终端B是否合法接入的校验服务。

IPTV系统C通过门户系统EPG(Electronic Program Guide,电子节目指南),与终端B和MES系统A进行交互。

在终端B向IPTV系统C发起登录请求后,IPTV系统C根据数据库中的用户登记表,判断终端B是否为合法用户。

若终端B为非法用户,则禁止终端B登录IPTV系统C。

若终端B为合法用户,则允许终端B登录IPTV系统C,然后,向终端B返回MES系统A的域地址Domain。其中,Domain为预先配置的MES系统A的接入服务器A1的地址和端口。

在终端B向MES系统A发起接入请求后,MES系统A获取终端B的信息,并向IPTV系统C发起校验请求。

IPTV系统C根据MES系统A的校验请求,校验终端B是否为合法用户,并将校验结果返回给MES系统A。

在本实施例中,终端用户状态获取系统包括消息交互系统MES系统A、终端B和交互式网络电视IPTV系统C;终端B登陆IPTV系统C后,主动向MES系统A注册接入,接入成功后通过心跳消息保活;MES系统A根据心跳消息交互状态和终端B的信息,获取终端B的状态;终端B退出登陆时主动向MES系统A发离线消息,MES系统A将终端状态置为离线。本实施例中实现了MES系统与终端用户的心跳保活,能够获取终端用户的实时状态。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1