子连接创建方法、客户端设备和服务端设备与流程

文档序号:21101943发布日期:2020-06-16 20:53阅读:179来源:国知局
子连接创建方法、客户端设备和服务端设备与流程
本发明涉及数据传输领域,具体而言,涉及一种子连接创建方法、客户端设备和服务端设备。
背景技术
:流数据传输通常发生在点对点场景中,即一个客户端设备向服务端设备请求并获取流数据,服务端设备直接将流数据返回该客户端设备,不涉及第三方网元交互,为典型的客户端设备-服务端设备(client-server,简称为c-s)架构。图1是客户端设备向服务端设备请求并获取流数据的流程图,如图1所示,该流程包括以下步骤:步骤s101、客户端设备与服务端设备保持一个长期的主连接,当客户端设备请求流数据时,先在主连接下请求建立一个临时子连接,用于提供流数据传输通道;步骤s102、服务端设备同意建立后,返回一个表示子连接的标识(identifier,简称为id);步骤s103、客户端设备发起子连接,在新建立的子连接(如图1中步骤s103表示)下,确认子连接id;步骤s104、服务端设备校验该id如为之前创建子连接返回的id,则返回确认ok;步骤s105、客户端设备继续在主连接下请求服务端设备在指定子连接下发送指定的流数据;步骤s106、服务端设备响应客户端设备的请求;步骤s107、服务端设备在指定子连接中返回流数据。在该流程中的id类似于手机验证码,由服务端设备在主连接中分配,并在建立子连接时由客户端设备传入作为鉴权使用。id具有唯一性以及时效性。以上流程可以实现在点对点场景中客户端设备向服务端设备请求并获取流数据,然而,在分布式集群环境中,真正向客户端设备传输流数据的服务端设备可能并不是主服务端设备,而是辅服务端设备,传统的子连接建立过程已经不再适用,在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接是一个亟待解决的问题。技术实现要素:本发明实施例提供了一种子连接创建方法、客户端设备和服务端设备,以至少解决在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接的问题。根据本发明的一个实施例,提供了一种子连接创建方法,包括:客户端设备向主服务端设备发送第一子连接创建请求;所述客户端设备接收所述主服务端设备返回的第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述辅服务端设备生成的子连接标识subid;所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建,其中,所述subid用于在所述子连接的创建的过程中进行子连接有效性确认。在至少一个示例性实施例中,所述第一子连接创建请求携带子连接目的描述,其中,所述子连接目的描述用于指示所述子连接传输的业务的描述信息。在至少一个示例性实施例中,所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建包括:所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送子连接确认请求,其中,所述子连接确认请求携带所述subid;所述客户端设备接收所述辅服务端设备根据所述subid完成所述子连接有效性确认后返回的子连接确认响应,其中,所述子连接确认响应用于指示所述客户端设备和所述辅服务端设备之间的所述子连接创建成功。在至少一个示例性实施例中,所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建之后,还包括:所述客户端设备通过所述主服务端设备向所述辅服务端设备请求流数据;所述客户端设备通过创建的所述子连接接收所述辅服务端设备传输的流数据。在至少一个示例性实施例中,所述第一子连接创建响应还携带所述主服务端设备生成的子连接标识masterid,所述客户端设备通过所述主服务端设备向所述辅服务端设备请求流数据包括:所述客户端设备向所述主服务端设备发送第一流数据请求,其中,所述第一流数据请求携带所述masterid;所述客户端设备接收所述主服务端设备返回的第一流数据响应,其中,所述第一流数据响应是所述主服务端设备根据所述masterid对应的subid向所述辅服务端设备发送第二流数据请求后,根据所述辅服务端设备返回的第二流数据响应得到的。根据本发明的另一个实施例,提供了一种子连接创建方法,包括:主服务端设备接收客户端设备发送的第一子连接创建请求;所述主服务端设备向辅服务端设备发送第二子连接创建请求;所述主服务端设备接收所述辅服务端设备返回的第二子连接创建响应,其中,所述第二子连接创建响应携带所述辅服务端设备生成的子连接标识subid;所述主服务端设备向所述客户端设备返回第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述subid,其中,所述subid用于在所述客户端设备和所述辅服务端设备之间的子连接的创建的过程中进行子连接有效性确认。在至少一个示例性实施例中,所述第一子连接创建请求携带子连接目的描述,其中,所述子连接目的描述指示所述子连接用于传输的业务的描述信息,所述主服务端设备向辅服务端设备发送第二子连接创建请求之前,还包括:所述主服务端设备根据所述子连接目的描述从多个辅服务端设备选择所述辅服务端设备。在至少一个示例性实施例中,所述第一子连接创建响应还携带所述主服务端设备生成的子连接标识masterid,在所述主服务端设备向所述客户端设备返回第一子连接创建响应之后,所述方法还包括:所述主服务端设备接收所述客户端设备发送的第一流数据请求,其中,所述第一流数据请求携带所述masterid;所述主服务端设备向所述辅服务端设备发送第二流数据请求,其中,所述第二流数据请求携带所述masterid对应的subid;所述主服务端设备接收所述辅服务端设备返回的第二流数据响应;所述主服务端设备向所述客户端设备返回第一流数据响应。在至少一个示例性实施例中,所述主服务端设备向所述辅服务端设备发送第二流数据请求包括:所述主服务端设备根据记录的subid和masterid之间的对应关系,确定所述masterid对应的所述subid;所述主服务端设备向所述辅服务端设备发送携带所述subid的第二流数据请求。根据本发明的又一个实施例,提供了一种子连接创建方法,包括:辅服务端设备接收主服务端设备发送的第二子连接创建请求;所述辅服务端设备生成子连接标识subid并向所述主服务端设备发送第二子连接创建响应,其中,所述第二子连接创建响应携带所述subid;所述辅服务端设备根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建。在至少一个示例性实施例中,所述辅服务端设备根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建包括:所述辅服务端设备接收所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送的子连接确认请求,其中,所述子连接确认请求携带所述subid;所述辅服务端设备根据所述subid进行所述子连接有效性确认,并在所述子连接有效性确认完成后向所述客户端设备返回子连接确认响应,其中,所述子连接确认响应用于指示所述客户端设备和所述辅服务端设备之间的所述子连接创建成功。在至少一个示例性实施例中,所述辅服务端设备根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建之后,还包括:所述辅服务端设备接收所述主服务端设备发送的第二流数据请求,其中,所述第二流数据请求携带所述subid;所述辅服务端设备向所述主服务端设备返回第二流数据响应;所述辅服务端设备通过创建的所述子连接向所述客户端设备发送流数据。根据本发明的再一个实施例,提供了一种客户端设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。根据本发明的再一个实施例,提供了一种服务端设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。需要说明的是,该服务端设备从角色上可以作为主服务端设备,也可以作为辅服务端设备,根据角色不同,其上的处理器可以被设置为运行所述计算机程序以执行上述相应方法实施例中的步骤。根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。通过本发明,由于客户端设备向主服务端设备发送第一子连接创建请求之后,可以通过主服务端设备返回的第一子连接创建响应得到辅服务端设备的地址信息和所述辅服务端设备生成的子连接标识subid,并进而根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建。因此,可以解决在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接的问题,在分布式集群环境下通过主服务端设备对客户端设备进行重定向,客户端设备可以直接与辅服务端设备基于subid进行子连接的创建,无需客户端设备和辅服务端设备进行二次登录鉴权过程,快速完成子连接的创建过程,提高了请求的实时响应,并减少系统消息交互所需的资源消耗。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是客户端设备向服务端设备请求并获取流数据的流程图;图2是根据本发明实施例1的子连接创建方法的流程图;图3是根据本发明实施例1的子连接创建方法的详细流程图;图4是根据本发明实施例2的子连接创建方法的流程图;图5是根据本发明实施例2的子连接创建方法的详细流程图;图6是根据本发明实施例3的子连接创建方法的流程图;图7是根据本发明实施例3的子连接创建方法的详细流程图;图8是根据本发明实施例4的客户端设备的结构框图;图9是根据本发明实施例5的服务端设备的结构框图;图10是根据本发明实施例8的客户端向服务端请求流数据的流程图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。实施例1本申请实施例1所提供的方法实施例可以在客户端设备中执行。图2是根据本发明实施例1的子连接创建方法的流程图,如图2所示,该流程包括如下步骤:步骤s202,客户端设备向主服务端设备发送第一子连接创建请求;步骤s204,所述客户端设备接收所述主服务端设备返回的第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述辅服务端设备生成的子连接标识subid;步骤s206,所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建,其中,所述subid用于在所述子连接的创建的过程中进行子连接有效性确认,所述子连接是用于进行多媒体服务的传输或控制的子连接。通过上述步骤,由于客户端设备向主服务端设备发送第一子连接创建请求之后,可以通过主服务端设备返回的第一子连接创建响应得到辅服务端设备的地址信息和所述辅服务端设备生成的子连接标识subid,并进而根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建。因此,可以解决在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接的问题,在分布式集群环境下通过主服务端设备对客户端设备进行重定向,客户端设备可以直接与辅服务端设备基于subid进行子连接的创建,无需客户端设备和辅服务端设备进行二次登录鉴权过程,快速完成子连接的创建过程,提高了请求的实时响应,并减少系统消息交互所需的资源消耗。在至少一个示例性实施例中,所述第一子连接创建请求携带子连接目的描述,其中,所述子连接目的描述用于指示所述子连接传输的业务的描述信息。该子连接目的描述可以协助主服务端设备为该流数据传输选择合适的辅服务端设备。在至少一个示例性实施例中,步骤s206可以包括:步骤s2061,所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送子连接确认请求,其中,所述子连接确认请求携带所述subid;步骤s2062,所述客户端设备接收所述辅服务端设备根据所述subid完成所述子连接有效性确认后返回的子连接确认响应,其中,所述子连接确认响应用于指示所述客户端设备和所述辅服务端设备之间的所述子连接创建成功。图3是根据本发明实施例1的子连接创建方法的详细流程图,如图3所示,在至少一个示例性实施例中,步骤s206之后,所述方法还可以包括:步骤s208,所述客户端设备通过所述主服务端设备向所述辅服务端设备请求流数据;步骤s210,所述客户端设备通过创建的所述子连接接收所述辅服务端设备传输的流数据。在至少一个示例性实施例中,所述第一子连接创建响应还携带所述主服务端设备生成的子连接标识masterid,步骤s208可以包括:步骤s2081,所述客户端设备向所述主服务端设备发送第一流数据请求,其中,所述第一流数据请求携带所述masterid;步骤s2082,所述客户端设备接收所述主服务端设备返回的第一流数据响应,其中,所述第一流数据响应是所述主服务端设备根据所述masterid对应的subid向所述辅服务端设备发送第二流数据请求后,根据所述辅服务端设备返回的第二流数据响应得到的。需要说明的是,流数据在本实施例中是一个广义的概念,流数据可以包括音频或视频流数据(其又包括实时流或历史流),该音频或视频流涵盖正常播放的音频或视频流,也涵盖经过音视频播放控制的流数据(例如,经过调速的音频或视频流、切换后的音频或视频流、定位选定的音频或视频流等等),当请求的流数据是经过音视频播放控制的流数据时,则第一、第二流数据请求的类型相应地可以具体化为音视频调速请求、音视频切换请求、音视频定位请求等等。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2本申请实施例2所提供的方法实施例可以在主服务端设备中执行。图4是根据本发明实施例2的子连接创建方法的流程图,如图4所示,该流程包括如下步骤:步骤s402,主服务端设备接收客户端设备发送的第一子连接创建请求;步骤s404,所述主服务端设备向辅服务端设备发送第二子连接创建请求;步骤s406,所述主服务端设备接收所述辅服务端设备返回的第二子连接创建响应,其中,所述第二子连接创建响应携带所述辅服务端设备生成的子连接标识subid;步骤s408,所述主服务端设备向所述客户端设备返回第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述subid,其中,所述subid用于在所述客户端设备和所述辅服务端设备之间的子连接的创建的过程中进行子连接有效性确认,所述子连接是用于进行多媒体服务的传输或控制的子连接。通过上述步骤,由于主服务端设备收到客户端设备的第一子连接创建请求之后,向辅服务端设备发送第二子连接创建请求并接收辅服务端设备返回的subid,之后向客户端设备返回辅服务端设备的地址信息和所述subid,以便于所述客户端设备利用所述subid与所述辅服务端设备完成子连接的创建。因此,该方案可以解决在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接的问题,在分布式集群环境下通过主服务端设备对客户端设备进行重定向,客户端设备可以直接与辅服务端设备基于subid进行子连接的创建,无需客户端设备和辅服务端设备进行二次登录鉴权过程,快速完成子连接的创建过程,提高了请求的实时响应,并减少系统消息交互所需的资源消耗。在至少一个示例性实施例中,所述第一子连接创建请求携带子连接目的描述,其中,所述子连接目的描述指示所述子连接用于传输的业务的描述信息,步骤s404之前,该方法还可以包括:所述主服务端设备根据所述子连接目的描述从多个辅服务端设备选择所述辅服务端设备。图5是根据本发明实施例2的子连接创建方法的详细流程图,如图5所示,在至少一个示例性实施例中,所述第一子连接创建响应还携带所述主服务端设备生成的子连接标识masterid,在步骤s408之后,所述方法可以还包括:步骤s410,所述主服务端设备接收所述客户端设备发送的第一流数据请求,其中,所述第一流数据请求携带所述masterid;步骤s412,所述主服务端设备向所述辅服务端设备发送第二流数据请求,其中,所述第二流数据请求携带所述masterid对应的subid;步骤s414,所述主服务端设备接收所述辅服务端设备返回的第二流数据响应;步骤s416,所述主服务端设备向所述客户端设备返回第一流数据响应。在至少一个示例性实施例中,步骤s406之后,还可以包括以下步骤:所述主服务端设备记录所述subid和所述主服务端设备生成的子连接标识masterid之间的对应关系。在至少一个示例性实施例中,步骤s412可以包括:步骤s4121,所述主服务端设备根据记录的subid和masterid之间的对应关系,确定所述masterid对应的所述subid;步骤s4122,所述主服务端设备向所述辅服务端设备发送携带所述subid的第二流数据请求。需要说明的是,流数据在本实施例中是一个广义的概念,流数据可以包括音频或视频流数据(其又包括实时流或历史流),该音频或视频流涵盖正常播放的音频或视频流,也涵盖经过音视频播放控制的流数据(例如,经过调速的音频或视频流、切换后的音频或视频流、定位选定的音频或视频流等等),当请求的流数据是经过音视频播放控制的流数据时,则第一、第二流数据请求的类型相应地可以具体化为音视频调速请求、音视频切换请求、音视频定位请求等等。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例3本申请实施例3所提供的方法实施例可以在辅服务端设备中执行。图6是根据本发明实施例3的子连接创建方法的流程图,如图6所示,该流程包括如下步骤:步骤s602,辅服务端设备接收主服务端设备发送的第二子连接创建请求;步骤s604,所述辅服务端设备生成子连接标识subid并向所述主服务端设备发送第二子连接创建响应,其中,所述第二子连接创建响应携带所述subid;步骤s606,所述辅服务端设备根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建,其中,所述子连接是用于进行多媒体服务的传输或控制的子连接。通过上述步骤,由于辅服务端设备在收到主服务端设备发送的第二子连接创建请求之后,能够生成subid并将其携带在第二子连接创建响应中发送给主服务端设备,以便后续客户端设备可以得到该subid,所述辅服务端设备可以根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建。因此,该方案可以解决在分布式集群环境中客户端设备如何与真正提供流媒体服务的服务端设备创建子连接的问题,在分布式集群环境下通过主服务端设备对客户端设备进行重定向,客户端设备可以直接与辅服务端设备基于subid进行子连接的创建,无需客户端设备和辅服务端设备进行二次登录鉴权过程,快速完成子连接的创建过程,提高了请求的实时响应,并减少系统消息交互所需的资源消耗。在至少一个示例性实施例中,步骤s606可以包括:步骤s6061,所述辅服务端设备接收所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送的子连接确认请求,其中,所述子连接确认请求携带所述subid;步骤s6062,所述辅服务端设备根据所述subid进行所述子连接有效性确认,并在所述子连接有效性确认完成后向所述客户端设备返回子连接确认响应,其中,所述子连接确认响应用于指示所述客户端设备和所述辅服务端设备之间的所述子连接创建成功。图7是根据本发明实施例3的子连接创建方法的详细流程图,如图7所示,在至少一个示例性实施例中,步骤s606之后,还可以包括:步骤s608,所述辅服务端设备接收所述主服务端设备发送的第二流数据请求,其中,所述第二流数据请求携带所述subid;步骤s610,所述辅服务端设备向所述主服务端设备返回第二流数据响应;步骤s612,所述辅服务端设备通过创建的所述子连接向所述客户端设备发送流数据。需要说明的是,流数据在本实施例中是一个广义的概念,流数据可以包括音频或视频流数据(其又包括实时流或历史流),该音频或视频流涵盖正常播放的音频或视频流,也涵盖经过音视频播放控制的流数据(例如,经过调速的音频或视频流、切换后的音频或视频流、定位选定的音频或视频流等等),当请求的流数据是经过音视频播放控制的流数据时,则第一、第二流数据请求的类型相应地可以具体化为音视频调速请求、音视频切换请求、音视频定位请求等等。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例4在本实施例4中提供了一种客户端设备,该客户端设备用于实现上述实施例1及优选实施方式,已经进行过说明的不再赘述。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图8是根据本发明实施例4的客户端设备的结构框图,如图8所示,该客户端设备包括存储器82和处理器84,所述存储器82中存储有计算机程序,所述处理器84被设置为运行所述计算机程序以执行上述方法实施例1中的步骤。可选地,本实施例中的具体示例可以参考上述实施例1及可选实施方式中所描述的示例,本实施例在此不再赘述。实施例5在本实施例5中提供了一种服务端设备,该服务端设备用于实现上述实施例2或3及优选实施方式,已经进行过说明的不再赘述。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图9是根据本发明实施例5的服务端设备的结构框图,如图9所示,该服务端设备包括存储器92和处理器94,所述存储器92中存储有计算机程序,所述处理器94被设置为运行所述计算机程序以执行上述方法实施例1中的步骤。可选地,本实施例中的具体示例可以参考上述实施例2和3及可选实施方式中所描述的示例,本实施例在此不再赘述。实施例6本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。作为可选方式一,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:步骤s1,客户端设备向主服务端设备发送第一子连接创建请求;步骤s2,所述客户端设备接收所述主服务端设备返回的第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述辅服务端设备生成的子连接标识subid;步骤s3,所述客户端设备根据所述辅服务端设备的地址信息向所述辅服务端设备发送所述subid,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建,其中,所述subid用于在所述子连接的创建的过程中进行子连接有效性确认。作为可选方式二,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:步骤s1,主服务端设备接收客户端设备发送的第一子连接创建请求;步骤s2,所述主服务端设备向辅服务端设备发送第二子连接创建请求;步骤s3,所述主服务端设备接收所述辅服务端设备返回的第二子连接创建响应,其中,所述第二子连接创建响应携带所述辅服务端设备生成的子连接标识subid;步骤s4,所述主服务端设备向所述客户端设备返回第一子连接创建响应,其中,所述第一子连接创建响应携带辅服务端设备的地址信息和所述subid,其中,所述subid用于在所述客户端设备和所述辅服务端设备之间的子连接的创建的过程中进行子连接有效性确认。作为可选方式三,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:步骤s1,辅服务端设备接收主服务端设备发送的第二子连接创建请求;步骤s2,所述辅服务端设备生成子连接标识subid并向所述主服务端设备发送第二子连接创建响应,其中,所述第二子连接创建响应携带所述subid;步骤s3,所述辅服务端设备根据客户端设备发送的所述subid进行子连接有效性确认,以完成所述客户端设备和所述辅服务端设备之间的子连接的创建。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。实施例7本实施例从整个系统的角度,描述实施例1-3所述的子连接创建方法乃至基于该子连接进行数据流传输的整体流程。该过程包括以下步骤:步骤s1,客户端向主服务端发送第一子连接创建请求;步骤s2,所述主服务端选择辅服务端并向所述辅服务端发送第二子连接创建请求;步骤s3,所述主服务端接收来自所述辅服务端的第一子连接创建响应,其中,所述第一子连接创建响应携带所述辅服务端生成的子连接标识subid;步骤s4,所述主服务端记录所述subid和所述主服务端生成的子连接标识masterid之间的对应关系,并向所述客户端返回第二子连接创建响应,其中,所述第二子连接创建响应携带所述辅服务端的地址信息、所述subid和所述主服务端生成的子连接标识masterid;步骤s5,所述客户端根据所述辅服务端的地址信息向所述辅服务端发送子连接确认请求,其中,所述子连接确认请求携带所述subid;步骤s6,所述辅服务端根据所述subid完成子连接有效性确认后,向所述客户端返回子连接确认响应,指示所述客户端和所述辅服务端之间的子连接创建成功;步骤s7,所述客户端向所述主服务端发送第一流数据请求,其中,所述第一流数据请求携带所述masterid;步骤s8,所述主服务端根据所述masterid确定对应的subid,并向所述辅服务端发送第二流数据请求,其中,所述第二流数据请求携带所述subid;步骤s9,所述主服务端接收所述辅服务端返回的流数据响应,并向所述客户端返回所述流数据响应;步骤s10,所述客户端在创建的所述子连接上接收所述第一流数据请求所对应的流数据。通过以上方案,在分布式集群的流数据请求场景下,通过创建流数据传输子连接,并结合集群入口的管理节点分发拉流请求,实现了流数据传输的重定向,具有无需客户端在重定向后的二次登录鉴权,客户端无需拥有集群所有节点的账号信息,实现简单的优点。实施例8该实施例描述了分布式集群环境下,实现子连接创建、流数据请求和传输的整体流程。该方案在分布式集群的视频存储环境下,客户端通过一个统一入口的服务端访问流数据时,该服务端通过拉流重定向方案,将流数据请求的业务分发到集群中的其它节点处理,由其代完成流媒体访问服务。一个客户端向服务端(称为主服务端mainserver,简称为ms)请求流数据时,可能涉及重定向,即实际返回的流数据不是由请求的服务端提供,而是由其它第三方服务设备(称为辅服务端secondaryserver,简称为ss)提供。主服务端充当了中介作用,为客户端与实际流数据提供者建立点对点的连接。图10是根据本发明实施例8的客户端向服务端请求流数据的流程图,如图10所示,该过程包括以下步骤:步骤s1001,客户端向主服务端请求建立子连接(两者先前已建立主连接),请求时会携带建立子连接的目的描述;步骤s1002,主服务端根据请求中的目的描述,在n个辅服务端中选择一个,并向该辅服务端请求建立子连接(两者先前已建立主连接);步骤s1003,辅服务端响应主服务端请求,并返回子连接id,为区分后面步骤中产生的id,此处称为subid;步骤s1004,主服务端响应客户端请求,并返回辅服务端的服务ip/port,同时也返回两个子连接id,其中一个id1为上一步返回得到的subid;另一个id2为主服务端自行生成,称为masterid,由于主服务端可能同时管理多个辅服务端,不同辅服务端返回给主服务端的可能是相同的子连接id,主服务端内部构建id索引表,通过该表可以查找id对应关系;索引表如下表1所示,其中第一栏中的masterid为主键。masterid辅服务端节点号subid10001100100111011002320010034100表1主服务端内部构建的id索引表后续,客户端与主服务端交互时使用masterid,而客户端与辅服务端以及主服务端与辅服务端交互时,均使用subid。步骤s1005,客户端向上一步返回的ip/port(即辅服务端的监听地址)建立新的子连接,并使用subid认证子连接的有效性;步骤s1006,辅服务端认证子连接id有效性后,返回确认ok,至此,主服务端已成功的为客户端与辅服务端建立临时子连接,为后续的流数据传输构建好了链路通道;步骤s1007,客户端向主服务端请求流数据,此处携带的子连接id使用s1004步返回的masterid,其中,流数据在本实施例中是一个广义的概念,流数据可以包括音频或视频流数据(其又包括实时流或历史流),该音频或视频流涵盖正常播放的音频或视频流,也涵盖经过音视频播放控制的流数据(例如,经过调速的音频或视频流、切换后的音频或视频流、定位选定的音频或视频流等等),当请求的流数据是经过音视频播放控制的流数据时,则请求的类型相应地可以具体化为音视频调速请求、音视频切换请求、音视频定位请求等等;步骤s1008,主服务端转发上步请求到辅服务端,转发时需要转换子连接id的值,即通过传入的masterid查询id索引表得到的subid(辅服务端只认识subid,不认识masterid);步骤s1009,辅服务端响应主服务端请求,返回ok;步骤s1010,主服务端响应客户端请求,返回ok;步骤s1011,客户端在步骤s1006步建立的子连接上,直接接收来自辅服务端的流数据。上述流程中,站在客户端视角,只看到主服务端一个入口,而实际的服务提供者可能是由多个服务端共同完成,这样就实现了分布式的数据分发。传统的rtsp协议中的url重定向方式中,服务端向客户端返回重定向目标设备的url,客户端重新向新的url发起连接,这时会进行二次登录鉴权,此后的流程中,不再涉及主服务端。相比于传统的rtsp协议中的url重定向方案,本实施例中的方案是基于流数据传输协议之上扩展实现,具有原理简单、实现方便、实用性高的特点,同时免去了客户端在重定向后的二次登录鉴权,客户端无需拥有集群所有节点的账号信息,性能表现上相比rtsp协议更加优秀,也更能对流数据进行精细化的控制,如调速、倒放等。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1