一种分布式的IPTV多屏网关和IPTV多屏互动方法
技术领域
本发明涉及互联网协议电视(Internet Protocol Television,简称IPTV)的多屏互动业务技术领域,尤其涉及一种分布式的IPTV多屏网关和IPTV多屏互动方法。
背景技术
随着各种多屏终端在IPTV系统中的应用,多屏互动业务逐渐成为一种受家庭用户欢迎的新型业务,这就要求IPTV系统能为用户提供在电视、电脑、手机、PAD等终端上无缝切换的业务服务,比如为家庭用户可在电脑屏(PC)、手机屏(Mobile、PAD)、电视屏(STB)上互动的邮箱、视频互动、互动游戏、甩屏、用手机或PAD遥控STB进行业务操作等,但是不同终端属于不同的网络平台(比如宽带网络与移动网络),所以在家庭网络无法进行通讯时,终端间的消息通讯则需要通过多屏网关进行转发,以实现多屏互动业务,让用户可以随时随地通过手机、PC、TV平滑灵活地进行业务切换和业务共享。
发明内容
本发明的目的是提出一种分布式的IPTV多屏网关和IPTV多屏互动方法,实现属于不同网络平台的终端和机顶盒之间的消息互动。
为了达到上述目的,本发明提出了一种分布式的互联网协议电视IPTV多屏网关,至少包括:
接入服务器,用于根据一致性哈希算法为机顶盒和终端分配注册服务器,将与分配给机顶盒的注册服务器合设的转接服务器分配给机顶盒;
至少一个注册服务器,用于为机顶盒和终端进行注册;
至少一个转接服务器,用于当终端发起多屏业务时,为终端和机顶盒转发互动消息。
优选地,所述接入服务器,还用于当机顶盒/终端接收不到分配给机顶盒/终端的注册服务器在进行保活过程中的返回消息时,重新为机顶盒/终端分配注册服务器;
所述注册服务器,还用于为机顶盒和终端进行保活。
优选地,所述接入服务器,具体用于:
根据哈希算法计算各注册服务器的哈希值;
根据机顶盒/终端发送的所述机顶盒/终端标识符和哈希算法计算机顶盒/终端哈希值;
分别计算与所述各注册服务器对应的哈希值与机顶盒/终端哈希值之间的差值,将与最小的差值所对应的注册服务器分配给机顶盒/终端;用于将与所述分配给机顶盒的注册服务器合设的转接服务器分配给所述机顶盒。
优选地,所述分配给所述终端的注册服务器,用于接收来自所述终端的查询与其绑定的机顶盒列表的消息,并向IPTV业务平台发送所述查询的消息;接收所述IPTV业务平台的返回的机顶盒列表消息;根据所述机顶盒列表消息中机顶盒的标识符和一致性哈希算法,计算出分配给机顶盒的注册服务器的IP地址,并向分配给所述机顶盒的注册服务器查询所述机顶盒的在线信息,将所述机顶盒的在线信息和所述IP地址添加到机顶盒列表中,并将所述机顶盒列表发送给所述终端。
优选地,所述分配给机顶盒的转接服务器,具体用于:
与所述终端之间建立传输控制协议TCP链接;
接收来自所述终端的套接字socks5握手消息;
接收来自机顶盒的TCP连接,并将机顶盒和对应终端的TCP连接对应关系配对上,给所述终端返回socks5握手成功消息。
优选地,所述分配给机顶盒的注册服务器,具体用于:
接收来自所述机顶盒的采用用户数据包协议UDP发送的注册信息;
获取所接收的注册信息的出口IP地址和端口,并将所述出口IP地址和端口保存到机顶盒的信息中;
接收所述分配给机顶盒的转接服务器发送的协助建链请求消息;
根据所述机顶盒的标识符在自身内存中的信息中查找所述机顶盒的出口IP地址和端口,并采用UDP向所述IP地址和端口发送建链请求信息;
所述分配给机顶盒的转接服务器,用于与所述终端之间建立TCP链接;接收所述终端发送的socks5握手消息;向所述分配给机顶盒的注册服务器发送协助建链请求消息;接收所述机顶盒的TCP链接,并将该链接与所述终端的TCP链接对应上。
本发明还提出了一种IPTV多屏互动方法,预先将终端登陆账号和机顶盒进行绑定,该方法包括:
接入服务器根据一致性哈希算法为机顶盒和终端分配注册服务器,将与分配给机顶盒的注册服务器合设的转接服务器分配给机顶盒;
机顶盒/终端向所分配的注册服务器进行注册;
当终端发起多屏业务时,终端通过所分配给机顶盒的转接服务器和机顶盒进行消息互动。
优选地,所述机顶盒/终端向所分配的注册服务器进行注册后还包括:
所述分配给机顶盒/终端的注册服务器对所述机顶盒/终端进行保活;
当机顶盒/终端接收不到分配给机顶盒/终端的注册服务器在进行保活过程中的返回消息时,所述接入服务器重新为机顶盒/终端分配注册服务器。
优选地,所述接入服务器根据一致性哈希算法为机顶盒和终端分配注册服务器包括:
所述接入服务器根据哈希算法计算各注册服务器的哈希值;
所述机顶盒/终端向所述接入服务器发送包含机顶盒/终端标识符的请求信息;
所述接入服务器根据所述机顶盒/终端标识符和哈希算法,计算机/终端顶盒哈希值;
所述接入服务器分别计算与所述各注册服务器对应的哈希值与机顶盒/终端哈希值之间的差值,将与最小的差值所对应的注册服务器分配给机顶盒/终端。
优选地,所述终端发起多屏业务包括:
所述终端向分配给所述终端的注册服务器发送查询消息,查询与所述终端绑定的机顶盒的信息;
分配给所述终端的注册服务器接收到查询消息后,向IPTV业务平台发送所述查询消息;
所述IPTV业务平台将与所述终端绑定的机顶盒的相关信息返回给所述分配给终端的注册服务器,所述分配给终端的注册服务器根据返回的相关信息中机顶盒的标识符和一致性哈希算法,计算出分配给机顶盒的注册服务器的IP地址,并向所述分配给机顶盒的注册服务器查询所述机顶盒的在线信息,所述分配给终端的注册服务器将所述在线信息和所述IP地址添加到机顶盒列表中;
所述分配给终端的注册服务器将所述机顶盒列表发送给所述终端;
所述用户在所述机顶盒列表中选择一个在线的机顶盒发起多屏业务。
优选地,所述多屏业务为跨屏操作、内容共享、跨屏遥控或共享推荐。
优选地,所述终端通过所分配给机顶盒的转接服务器和机顶盒进行消息互动包括:
所述终端与分配给机顶盒的转接服务器之间建立传输控制协议TCP链接;
所述终端向所述分配给机顶盒的转接服务器发送套接字socks5握手消息;
所述分配给机顶盒的转接服务器接收所述机顶盒主动建立的TCP链接,并找到对应的所述终端的TCP链接,建立一一对应的配对关系,向所述终端返回socks5握手成功消息;
所述终端通过两个TCP链接和所述机顶盒进行消息互动。
优选地,所述终端通过所分配给机顶盒的转接服务器和机顶盒进行消息互动包括:
所述机顶盒向分配给所述机顶盒的注册服务器注册时采用用户数据包协议UDP向所述分配给机顶盒的注册服务器发送注册信息;所述分配给机顶盒的注册服务器获取所接收的注册信息的出口IP地址和端口,并将所述出口IP地址和端口保存到机顶盒的信息中;
所述终端与分配给机顶盒的转接服务器之间建立TCP链接;
所述终端向所述分配给机顶盒的转接服务器发送socks5握手消息;
所述转接服务器向分配给机顶盒的注册服务器发送协助建链请求消息;
所述分配给机顶盒的注册服务器根据所述机顶盒的标识符在自身内存中的信息中获取所述机顶盒的出口IP地址和端口,并采用UDP向所述出口IP地址和端口发送建链请求信息;
所述机顶盒收到所述请求信息后与所述分配给机顶盒的转接服务器之间建立TCP链接;
所述分配给机顶盒的转接服务器将所述机顶盒和所述终端的TCP链接形成配对关系,向所述终端发送socks5握手成功消息;
所述终端通过两个TCP链和所述机顶盒进行消息互动。
本发明提出的多屏网关和多屏互动方法采用接入负载均衡机制和注册服务器的分布式机制,实现了属于不同网络平台的终端和机顶盒之间的消息互动,并且保证了在用户规模较大时,对机顶盒和终端的信息和在线状态进行有效管理,和高效实现消息互动。
本发明还通过NAT穿越方法实现了机顶盒通过无线网关接入宽带网络时与终端之间的消息互动。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明提出的分布式的IPTV多屏网关的结构组成图;
图2为本发明提出的IPTV多屏互动方法的方法流程图;
图3为本发明实施例中接入服务器为机顶盒分配注册服务器和转接服务器,为终端分配注册服务器的方法流程图;
图4为本发明实施例中终端查询与其绑定机顶盒列表的流程示意图;
图5为本发明实施例中终端采用采用socks5标准协议与机顶盒进行消息互动的方法流程示意图;
图6为本发明实施例中终端采用采用网络地址转换NAT穿越与机顶盒进行消息互动的方法流程示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
参见图1,为了实现属于不同网络平台的终端和机顶盒之间的互动,本发明提出了一种分布式的互联网协议电视IPTV多屏网关,至少包括:
接入服务器,用于维持终端和机顶盒的接入负载均衡,并根据一致性哈希算法为机顶盒和分配注册服务器,将与分配给机顶盒的注册服务器合设的转接服务器分配给机顶盒;
为了保证多屏网关的正常运行,接入服务器可采用双机方式运行,也就是说,接入模块包括主接入服务器和备接入服务器,主接入服务器与备接入服务器的功能完全一样,正常情况下,主接入服务器完成接入服务器的所有功能,而备接入服务器处于空闲状态;当主接入服务器发生故障时,备接入服务器代替主接入服务器完成接入服务器的所有功能。
至少一个注册服务器,用于为机顶盒和终端进行注册;
至少一个转接服务器,用于当终端发起多屏业务时,为终端和机顶盒转发互动消息。
本发明提出的上述IPTV多屏网关中,接入服务器还具有以下功能:根据哈希算法计算各注册服务器的哈希值;根据来自机顶盒/终端的机顶盒/终端标识符和哈希算法,计算机顶盒/终端哈希值;分别计算与所述各注册服务器对应的哈希值与机顶盒/终端哈希值之间的差值,将与最小的查找所对应的注册服务器分配给机顶盒/终端。
本发明提出的上述IPTV多屏网关中,分配给终端的注册服务器,用于接收终端发送的查询绑定的机顶盒列表消息,并向IPTV业务平台发送查询消息;接收IPTV业务平台的返回的机顶盒列表消息;根据返回的机顶盒列表消息中的机顶盒的标识符和一致性哈希算法,计算出分配给机顶盒的注册服务器的IP地址,向分配给机顶盒的注册服务器查询机顶盒的在线信息;将在线信息和IP地址添加到机顶盒列表中,并将机顶盒列表发送给所述终端。
本发明提出的上述IPTV多屏网关中,分配给机顶盒的转接服务器,用于与终端之间建立传输控制协议TCP链接;接收终端发送的套接字socks5握手消息;并接收机顶盒主动建立的TCP链接,将机顶盒和终端的两条TCP链接对应关系对应上后,向终端返回socks5握手成功消息。
本发明提出的上述IPTV多屏网关中,分配给机顶盒的注册服务器还具有以下功能:用于接收机顶盒采用用户数据包协议UDP发送的注册信息;获取所接收的注册信息的出口IP地址和端口,并将IP地址和端口保存到机顶盒的信息中;接收分配给机顶盒的转接服务器发送的协助建链请求消息;根据机顶盒的标识符在自身内存中的信息中获取机顶盒的出口IP地址和端口,并采用UDP向IP地址和端口发送建链请求信息;
分配给机顶盒的转接服务器还具有以下功能:用于与终端之间建立TCP链接;接收终端发送的socks5握手消息;向分配给机顶盒的注册服务器发送协助建链请求消息;接收机顶盒主动建立的TCP链接,并建立机顶盒和终端之间TCP链接的对应关系。
参见图2,本发明还提出了一种IPTV多屏互动方法,预先将终端账号和机顶盒进行绑定,该方法包括:
步骤100、接入服务器根据一致性哈希算法为机顶盒和分配注册服务器,将与分配给机顶盒的注册服务器合设的转接服务器分配给机顶盒;
步骤101、机顶盒/终端向所分配的注册服务器进行注册;
步骤102、当终端发起多屏业务时,终端通过所分配给机顶盒的转接服务器和机顶盒进行消息互动。
步骤100中,当注册服务器启动时,注册服务器会主动和接入服务器建立连接,并上报自身的信息,所上报的信息主要包括注册服务器的IP地址和监听端口,接入服务器接收到上报的信息后,将注册服务器的信息保存下来
步骤100中,转接服务器与注册服务器相对应,当接入服务器为机顶盒分配注册服务器时,与注册服务器合设的转接服务器也同时分配给了机顶盒。
参见图3,步骤100中,接入服务器为机顶盒和终端分配注册服务器和转接服务器的方法包括:
步骤200、接入服务器根据一致性哈希算法分别计算与各注册服务器一一对应的哈希值;
步骤201、机顶盒/终端向接入服务器发送包含机顶盒/终端标识符的请求信息;
步骤202、接入服务器根据机顶盒/终端标识符和一致性哈希算法,计算机顶盒/终端哈希值;
步骤203、接入服务器分别计算与各注册服务器对应的哈希值与机顶盒/终端哈希值之间的差值,将与最小的差值所对应的注册服务器分配给机顶盒/终端。
步骤101中,机顶盒和终端在接入到接入服务器后,向所分配的注册服务器进行注册,机顶盒注册时向注册服务器上报自身的状态信息,所上报的状态信息包括机顶盒标识符、用户业务账号(即终端控制该机顶盒时用户在终端中登陆的账号)、用户唯一身份令牌(即机顶盒登陆到IPTV业务平台后,业务平台给机顶盒分配的唯一身份标识符)和机顶盒注册时间。注册服务器收到注册信息后,将上报的消息在自身内存中缓存起来。
步骤101中,机顶盒和终端注册成功后,会定时向注册服务器发送心跳消息,注册服务器根据心跳消息对机顶盒或终端进行保活,注册服务器在接收到心跳消息后,会更新内存中维护的数据状态,也就是说,如果在预设时间内,注册服务器没有收到某个机顶盒或终端的心跳消息,则将该机顶盒或终端置为离线状态,即维护了机顶盒和终端是否在线的状态。
步骤101中,注册服务器接收到机顶盒和终端的心跳消息后,会向机顶盒发送返回消息。当机顶盒多次向所分配的服务器发送的心跳消息而接收不到返回消息时,机顶盒就认为其归属的注册服务器发生异常,那么机顶盒重新向接入服务器发送接入请求信息请求接入,接入服务器接收到请求信息后重新为机顶盒分配正常的注册服务器,而机顶盒后续的服务由重新分配的注册服务器提供。
参见图4,步骤102中,终端发起多屏业务的方法包括:
步骤300、终端向注册服务器发送查询消息,查询与终端绑定的机顶盒的信息;
步骤301、注册服务器接收到查询消息后,向IPTV业务平台发送查询消息;
步骤302、IPTV业务平台将与终端绑定的机顶盒的相关信息返回给分配给终端的注册服务器,分配给终端的注册服务器根据返回的相关信息中机顶盒的标识符和一致性哈希算法,计算出分配给机顶盒的注册服务器的IP地址,向分配给机顶盒的注册服务器查询机顶盒的在线状态,将机顶盒的在线状态和分配给机顶盒的注册服务器的IP地址添加到机顶盒列表中;
本步骤中,机顶盒的相关信息主要是指机顶盒的标识符,分配给终端的注册服务器采用一致性哈希算法根据机顶盒的标识符就能够计算得到分配给机顶盒的注册服务器,从而向分配给机顶盒的注册服务器查询该机顶盒是否在线,分配给机顶盒的注册服务器将机顶盒的在线状态和该注册服务器的IP地址返回给分配给终端的注册服务器,分配给终端的注册服务器将返回信息添加到机顶盒列表中,例如,某一机顶盒不在线,那么该机顶盒在机顶盒列表中显示为灰度。
步骤303、分配给终端的注册服务器将机顶盒列表发送给终端;
步骤304、用户在机顶盒列表中选择一个在线的机顶盒发起多屏业务。
步骤102中,多屏业务为跨屏操作、内容共享、跨屏遥控或共享推荐。其中,跨屏操作包括播放和订购,也就是在终端上浏览、收藏、搜索节目和内容信息后,通过甩屏功能在机顶盒上进行播放。比如回看、点播、搜索、甩屏、书签和收藏的同步、录制计划的同步等。
内容共享是指可在不同终端上展示其他终端共享的文字、图片、视频等。
共享推荐是指好友或系统推荐,消息推送。
参见图5,步骤102中,终端可以采用socks5标准协议与机顶盒进行消息互动。Socks5标准协议的交互过程包括:
步骤400、终端与分配给机顶盒的转接服务器之间建立TCP链接;
步骤401、终端向转接服务器发送socks5握手消息;
步骤402、转接服务器接收机顶盒主动建立的TCP链接,将机顶盒和终端的TCP链接的对应关系配对成功后,向终端返回socks5握手成功消息;
步骤403、终端通过两个TCP链和机顶盒进行消息互动。
参见图6,步骤102中,当机顶盒通过无线网关接入到宽带网络中时,机顶盒的IP地址是无线网关分配的私网地址,那么,转接服务器就无法直接和机顶盒建TCP链,终端页就无法对机顶盒进行多屏业务。
该情况下,终端与机顶盒可采用NAT穿越方法进行消息互动,该方法包括:
步骤500、机顶盒向注册服务器注册时采用UDP向注册服务器上报自身的状态信息;注册服务器获取所接收的状态信息的出口IP地址和端口,并将IP地址和端口保存到机顶盒的信息中;
步骤501、终端与转接服务器之间建立TCP链接;
步骤602、终端向转接服务器发送socks5握手消息;
步骤503、转接服务器向注册服务器发送协助建链请求消息;
步骤504、注册服务器根据机顶盒的标识符在自身内存中的信息中获取机顶盒的IP地址和端口,并采用UDP协议向该IP地址和端口发送建链请求信息;
步骤505、机顶盒收到该请求信息后与转接服务器之间建立TCP链接;
步骤506、转接服务器向终端发送socks5握手成功消息;
步骤507、终端通过两个TCP链和机顶盒进行消息互动。
本发明提出的多屏网关和多屏互动方法采用接入负载均衡机制和注册服务器的分布式机制,实现了属于不同网络平台的终端和机顶盒之间的消息互动,并且保证了在用户规模较大时,对机顶盒和终端的信息和在线状态进行有效管理,和高效实现消息互动。
本发明还通过NAT穿越方法实现了机顶盒通过无线网关接入宽带网络时与终端之间的消息互动。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。