CN114629916B - 基于p2p链路的取流方法、装置及系统 - Google Patents
基于p2p链路的取流方法、装置及系统 Download PDFInfo
- Publication number
- CN114629916B CN114629916B CN202210231173.9A CN202210231173A CN114629916B CN 114629916 B CN114629916 B CN 114629916B CN 202210231173 A CN202210231173 A CN 202210231173A CN 114629916 B CN114629916 B CN 114629916B
- Authority
- CN
- China
- Prior art keywords
- link
- client
- streaming
- target
- devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000009349 indirect transmission Effects 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000035515 penetration Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012806 monitoring device Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
本申请实施例公开了一种基于P2P链路的取流方法、装置及系统,有利于解决现有的取流方式耗时长、P2P资源利用率低的问题。所述方法应用于客户端,包括:获取取流参数信息,取流参数信息包括以下至少一项:客户端对各第一设备的取流频次、客户端与各第一设备之间建立P2P链路的成功率;根据取流参数信息,从多个第一设备中确定至少一个第二设备;建立客户端与各第二设备之间的P2P链路;当接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备;取流请求中携带有目标设备的标识信息;根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。该技术方案能够降低取流耗时,同时能够提高P2P资源的利用率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种基于P2P链路的取流方法、装置及系统。
背景技术
目前,在为用户提供流数据服务的业务系统中,通常部署有多个提供流数据的设备以及云平台。当用户需要对一个或多个设备进行取流时,现有的取流方式通常有以下两种:一种是用户的客户端分别将取流请求发送至云平台,云平台从相应的设备中获取数据流,然后再将数据流转发给客户端,客户端进行接收。这种由云平台转发数据流的方式,不仅会增加传输耗时,同时也增加了云平台的流量成本。
另一种是用户在客户端登录账号后,在用户对待取数据进行预览时,同步建立客户端与多个设备之间的P2P链路,建立成功后发起点对点取流,若取流失败则通过云平台进行间接取流。但是,由于客户端系统资源的限制,导致客户端无法针对所有的设备进行打洞(即建立P2P链路),因此会有一部分设备无法成功和客户端之间建立P2P链路,从而使客户端取流的设备不一定是成功建立P2P链路的设备,导致P2P资源的利用率较低。
发明内容
本申请实施例的目的是提供一种基于P2P链路的取流方法、装置及系统,有利于解决现有的取流方式耗时长、效率低以及P2P资源利用率低的问题。
为解决上述技术问题,本申请实施例是这样实现的:
一方面,本申请实施例提供一种基于P2P链路的取流方法,应用于客户端,所述方法包括:
获取取流参数信息,所述取流参数信息包括以下至少一项:所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
另一方面,本申请实施例提供一种基于P2P链路的取流装置,应用于客户端,所述装置包括:
获取模块,用于获取取流参数信息,所述取流参数信息包括以下至少一项:所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
建立模块,用于根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
发送模块,用于当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
接收模块,用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
再一方面,本申请实施例提供一种基于P2P链路的取流系统,包括客户单、第一设备和云平台;
所述云平台,用于存储取流参数信息,所述取流参数信息包括以下至少一项:所述客户端对各所述第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
所述客户端,用于从所述云平台中获取所述取流参数信息,根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
所述第二设备中的目标设备,用于采用所述P2P链路,接收所述客户端发送的所述取流请求,根据所述取流请求,向所述客户端发送目标数据;
所述客户端,还用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
再一方面,本申请实施例提供一种基于P2P链路的取流设备,包括处理器和与所述处理器电连接的存储器,所述存储器存储有计算机程序,所述处理器用于从所述存储器调用并执行所述计算机程序以实现上述一方面所述的基于P2P链路的取流方法。
再一方面,本申请实施例提供一种存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时以实现上述一方面所述的基于P2P链路的取流方法。
采用本发明实施例的技术方案,通过客户端获取取流参数信息,根据取流参数信息,从多个第一设备中确定至少一个第二设备,然后与各第二设备之间建立P2P链路。当客户端接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备,然后根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。可见,该技术方案一方面能够在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端与设备之间的P2P资源利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一实施例的一种基于P2P链路的取流方法的示意性流程图;
图2是根据本发明一实施例的一种基于P2P链路的取流方法中客户端与第二设备建立P2P链路的示意性流程图;
图3是根据本发明一实施例的一种基于P2P链路的取流方法的示意性场景图;
图4是根据本发明另一实施例的一种基于P2P链路的取流方法的示意性流程图;
图5是根据本发明一实施例的一种基于P2P链路的取流装置的示意性框图;
图6是根据本发明一实施例的一种基于P2P链路的取流系统的示意性框图;
图7是根据本发明一实施例的一种基于P2P链路的取流设备的示意性框图。
具体实施方式
本申请实施例提供一种基于P2P链路的取流方法、装置及系统,有利于解决现有的取流方式取流耗时长、取流效率低的问题。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是根据本发明一实施例的一种基于P2P链路的取流方法的示意性流程图,本实施例中,基于P2P链路的取流方法应用于客户端,该客户端可以是手机、电脑、智能穿戴设备等电子设备。如图1所示,该方法包括以下步骤S102-S108:
S102,获取取流参数信息,取流参数信息包括以下至少一项:客户端对各第一设备的取流频次、客户端与各第一设备之间建立P2P链路的成功率。
其中,取流参数信息可以从客户端的数据库中或者缓存中读取,也可以从云平台中获取。第一设备为提供流数据的设备,例如图像采集设备或音视频采集设备等。可选地,各第一设备可以为处于同一云平台下的设备。
本实施例中,可以预先设定取流参数信息的获取周期,计算该周期内客户端对各第一设备的取流频次和/或客户端与各第一设备之间建立P2P链路的成功率。例如,可以将周期设定为10天,当客户端登录时,取流参数信息包括本次登录前10天内的客户端对各第一设备的取流频次和/或客户端与各第一设备之间建立P2P链路的成功率。
S104,根据取流参数信息,从多个第一设备中确定至少一个第二设备;建立客户端与各第二设备之间的P2P链路。
其中,第二设备为多个第一设备中与客户端之间优先建立P2P链路的设备。P2P链路为基于点对点(peer-to-peer,P2P)打洞技术在第二设备与客户端之间建立的数据传输通道。
S106,当接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备;取流请求中携带有目标设备的标识信息。
其中,目标设备的标识信息可以是代表该目标设备的唯一数值或者唯一字符串等信息。
S108,根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。
其中,目标数据为与发送至目标设备的取流请求相对应的数据。例如,在一种场景下,目标设备为监控设备,取流请求可以为对该监控设备在某一时段的监控视频数据的获取请求,则对应的目标数据为该监控设备在该时段内多帧视频画面形成的视频数据。
本实施例中,通过客户端获取取流参数信息,根据取流参数信息,从多个第一设备中确定至少一个第二设备,然后与各第二设备之间建立P2P链路。当客户端接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备,然后根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。可见,该技术方案一方面能够在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息在多个第一设备中优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端的系统资源利用率。
在一个实施例中,取流参数信息还包括预先配置的第二设备的第一数量,其中,第二设备的第一数量可预先配置在客户端上,也可以预先配置在云平台上。第二设备的第一数量可以根据客户端的系统资源的大小进行合理的配置。例如,若客户端的系统内存较大且具有多条线程,则可以将第一数量预先配置为一个较大的数量,例如4个或者5个等等;若客户端的系统内存较小且线程数量较少,则可以将第一数量预先配置为一个较小的数量,例如1个或者2个等等。
本实施例中,根据取流参数信息,从多个第一设备中确定至少一个第二设备,可执行为以下步骤A1-A2:
步骤A1,根据客户端对各第一设备的取流频次和/或客户端与各第一设备之间建立P2P链路的成功率,确定各第一设备分别对应的优先级。
其中,取流频次包括取流频率和/或取流次数。若仅根据客户端对各第一设备的取流频次来确定优先级,则各第一设备分别对应的优先级可以根据客户端对各第一设备的取流频率的高低和/或取流次数的多少确定,各第一设备中被取流的频率越高和/或被取流的次数越多的设备,与客户端之间建立P2P链路的优先级越高。
若仅根据与各第一设备之间建立P2P链路的成功率确定各第一设备分别对应的优先级,则各第一设备分别对应的优先级可以根据客户端与各第一设备之间建立P2P链路的成功率的高低确定,各第一设备中与客户端之间建立P2P链路的成功率越高的设备,与客户端之间建立P2P链路的优先级越高。
若结合客户端对各第一设备的取流频次以及客户端与各第一设备之间建立P2P链路的成功率来确定各第一设备分别对应的优先级,则可有以下几种情况:当各第一设备被取流的频次相同时,可以根据客户端与各第一设备之间建立P2P链路的成功率确定各第一设备对应的优先级,即成功率越高的设备,与客户端之间建立P2P链路的优先级越高。或者,当客户端与各第一设备之间建立P2P链路的成功率相同时,可以根据客户端对各第一设备的取流频次确定各第一设备对应的优先级,即各第一设备中被取流的频率越高和/或被取流的次数越多的设备优先级越高。再或者,可预先为取流频次和成功率这两个参数分别配置对应的权重值,进而根据取流频次、成功率以及各自对应的权重值综合计算各第一设备分别对应的优先级。
例如,在同一云平台下有三个设备,分别为设备a,设备b与设备c,各设备与客户端之间建立P2P的优先级,由客户端对各第一设备的取流频次以及客户端与各第一设备之间建立P2P链路的成功率相结合确定,其中,客户端对各第一设备的取流频次仅包括取流次数。用户对设备a的取流次数为10,用户对设备b的取流次数为6,用户对设备c的取流次数为6,设备b与客户端之间建立P2P链路的成功率为50%,设备c与客户端之间建立P2P链路的成功率为80%,则结合取流次数及成功率可以确定,设备a的优先级大于设备c的优先级,设备c的优先级大于设备b的优先级。
步骤A2,根据各第一设备分别对应的优先级,从多个第一设备中确定与第一数量相匹配的至少一个第二设备。
在确定出各第一设备分别对应的优先级后,根据预先配置的第二设备的第一数量在多个第一设备中确定出与第一数量相匹配的第二设备。仍以上述步骤A1中的例子为例,假设各第一设备的优先级分别为设备a的优先级大于设备c的优先级,设备c的优先级大于设备b的优先级,当预先配置的第二设备的第一数量为2时,则可以确定第二设备为设备a与设备c;当预先配置的第二设备的第一数量为4时,则可以确定第二设备为设备a,设备b与设备c。
本实施例中,通过根据客户端对各第一设备的取流频次和/或客户端与各第一设备之间建立P2P链路的成功率,确定各第一设备分别对应的优先级,然后根据各第一设备分别对应的优先级,从多个第一设备中确定与第一数量相匹配的至少一个第二设备,可以选择出用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,提高了客户端与设备之间的P2P资源的利用率。
本实施例中,当客户端首次登录时,获取各第一设备的排序信息,排序信息可以为各第一设备在客户端数据库或者缓存中的存储顺序,也可以为客户端从云平台获取到的各第一设备列表中的顺序。然后按照获取到的排序信息中各第一设备的顺序,确定至少一个第一设备与客户端之间建立P2P链路的优先级。然后根据各第一设备的优先级,建立至少一个第一设备与客户端之间的P2P链路。可选的,当在客户端上或者在云平台上预先配置了第二设备的第一数量时,根据第二设备的第一数量以及各第一设备分别对应的优先级,在各个第一设备中确定出与第一数量相匹配的至少一个第二设备,然后建立客户端与各第二设备之间的P2P链路
本实施中,在客户端首次登录时还未获取取流参数信息的情况下,也可以根据各第一设备的排序信息确定出各第一设备的优先级,然后按照优先级建立至少一个第一设备与客户端之间的P2P链路,从而使得客户端可以及时与第一设备之间提前建立P2P链路,降低取流过程的耗时,提升取流速率。
在一个实施例中,在至少一个第一设备与客户端之间的P2P链路建立之后,P2P链路可能在较长的一段时间内都没有数据传输,这种情况下P2P链路有可能发生异常断开的情况,例如P2P链路所在进程被杀死、网络状态发生变化、中间网络链路异常等原因。为了维持P2P链路的正常连接,并确认P2P链路是否仍保持连接,可以采用心跳机制来维持P2P链路。可选地,客户端利用心跳机制维持P2P链路,可以包括以下步骤B1-B2:
步骤B1,客户端按照预设发送频率,通过P2P链路向第一设备发送第一心跳包。
其中,预设发送频率为客户端预先设置的发送频率,例如可以设置为每5秒向第一设备发送一个第一心跳包。
步骤B2,判断是否在预设时长内接收到第一设备返回的第二心跳包;若是,则确定P2P链路保持连接;若否,则确定P2P链路断开,重新建立第一设备与客户端之间的P2P链路。
其中,第一设备在接收到客户端发送的第一心跳包后会向客户端返回一个第二心跳包。例如,预设时长可以设置为2秒,若客户端向第一设备发送第一心跳包后的两秒内接收到了第一设备返回的第二心跳包,则可以确定P2P链路保持连接。若客户端向第一设备发送第一心跳包后的两秒内没有接收到第一设备返回的第二心跳包,则可以确定P2P链路断开,此时可以重新建立第一设备与客户端之间的P2P链路。
本实施例中,通过心跳机制维持P2P链路的正常连接,并在P2P链路的连接状态为断开时重新建立P2P链路,可以防止P2P链路被断开,达到维持P2P链路的目的。
图2是根据本发明一实施例的一种基于P2P链路的取流方法中客户端与第二设备建立P2P链路的示意性流程图,如图2所示,该方法包括以下步骤S201-S209:
S201,客户端通过云平台获取到第二设备的设备信息。
其中,第二设备的设备信息可以包括第二设备的唯一标识信息和第二设备的在线状态信息,在客户端获取到该唯一标识信息并确定第二设备处于在线状态后,开始与第二设备之间进行穿透工作。
S202,客户端向云平台发送点对点穿透请求。
具体地,客户端新开一个本地用户数据报协议(User Datagram Protocol;UDP)端口,创建UDP套接字(socket),使用此socket,通过NAT会话穿越应用程序(SessionTraversal Utilities for NAT;STUN)服务,获取本地UDP端口对应的外网本地互联网协议(Internet Protocol;IP)和端口信息,之后客户端会生成本次穿透请求对应的唯一标识ID,并根据和云平台之间的通信协议,将客户端的本地IP和端口信息,对应的外网IP和端口信息、以及本次穿透请求对应的唯一标识ID组装成穿透请求,发送给云平台。
S203,云平台接收到客户端发送的穿透请求后,将该穿透请求下发到第二设备。
S204,第二设备接收到穿透请求后,向云平台发送穿透回应。
具体地,在第二设备接收到穿透请求后,第二设备新开一个本地UDP端口,创建UDPsocket,并使用此socket,通过STUN服务,获取本地UDP端口对应的外网IP和端口信息,之后第二设备会将自身的本地IP和端口信息,对应的外网IP和端口信息组装成穿透回应,发送给云平台。同时,第二设备会记录本次穿透请求的客户端的本地IP和端口信息,对应的外网IP和端口信息、以及本次穿透请求对应的唯一标识ID。
S205,第二设备向客户端发送穿透包。
其中,穿透包携带有本次穿透请求对应的唯一标识ID。具体地,第二设备根据接收到的穿透请求获取到客户端的本地IP和端口信息以及对应的外网IP和端口信息。考虑到第二设备和客户端可能处于同一局域网内,也有可能分别处于不同的局域网,第二设备向客户端发送穿透包时,会同时向客户端的本地IP和端口发送多个穿透包,以及向客户端的外网IP和端口发送多个穿透包。
S206,云平台接收到穿透回应后,将该穿透回应下发到客户端。
S207,客户端接收到穿透回应后,向第二设备发送穿透包。
其中,穿透包携带有本次穿透请求对应的唯一标识ID。具体地,客户端根据接收到的穿透回应获取到第二设备的本地IP和端口信息以及对应的外网IP和端口信息。客户端向第二设备发送穿透包时,会同时向第二设备的本地IP和端口发送多个穿透包,以及向第二设备的外网IP和端口发送多个穿透包。
S208,客户端和第二设备在接收到对方发送的穿透包后,即认为穿透成功,客户端与第二设备之间的P2P链路建立。
S209,在客户端与第二设备之间的P2P链路建立之后,为了维持P2P链路保活,采用心跳机制维持该P2P链路。
其中,心跳机制可以维持建立后的P2P链路,客户端可以通过心跳机制监测P2P链路的连接状态,若监测到P2P链路的连接状态为断开时,则重新建立客户端与第二设备之间的P2P链路。
本实施例中,通过点对点打洞技术在客户端与第二设备之间预先建立P2P链路,可以使客户端在向第二设备发送取流请求以及接收第二设备返回的目标数据时,不再需要经过云平台进行中转,可以直接通过P2P链路进行传输,省去了取流过程中由云平台进行数据中转的转发环节,从而降低了取流过程的耗时,提升了取流效率,降低了云平台的流量转发成本。
在一个实施例中,在根据取流参数信息在多个第一设备中确定出第二设备之后,在建立客户端与第二设备之间的P2P链路的过程中,如果与第二数量个第二设备之间的P2P链路建立失败,则会根据多个第一设备分别对应的优先级重新选择第二数量个第二设备,然后建立客户端与重新选择的第二数量个第二设备之间的P2P链路。
例如,在同一云平台下有三个设备,分别为设备a,设备b、设备c与设备d,根据取流参数信息确定出设备a,设备b、设备c与设备d对应的优先级分别为设备a的优先级大于设备b的优先级、设备b的优先级大于设备c的优先级、设备c的优先级大于设备d的优先级,其中设备a和设备b被确定为第二设备,在客户端分别与设备a和设备b之间建立P2P链路的过程中,客户端与设备a之间的P2P链路建立成功,客户端与设备b之间的P2P链路建立失败,在客户端与设备b之间的P2P链路建立失败后,需要在设备c与设备d之间重新选择1个设备作为第二设备与客户端之间建立P2P链路,则根据设备c与设备d的优先级可以确定出设备c为重新选择的1个第二设备,然后建立客户端与设备c之间的P2P链路。
本实施例中,通过在建立客户端与第二设备之间的P2P链路的过程中,如果与第二数量个第二设备之间的P2P链路建立失败,则会根据多个第一设备分别对应的优先级重新选择第二数量个第二设备,然后建立客户端与重新选择的第二数量个第二设备之间的P2P链路,在客户端与部分第二设备之间的P2P链路建立失败的情况下,客户端会重新选择与其他相应数量的第一设备建立P2P链路,从而提高P2P链路资源的利用率。
在一个实施例中,在将取流请求发送至目标设备后,根据客户端与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。以下介绍两种采用对应的数据传输链路接收目标设备返回的目标数据的两种方式。
第一种,在将取流请求发送至目标设备之后,判断客户端与目标设备之间的P2P链路的建立结果,若P2P链路建立结果为建立成功,则确定接收目标返回的目标数据的数据传输链路为与目标设备之间建立的P2P链路,采用该P2P链路接收目标设备返回的目标数据;若P2P链路建立结果为建立失败,则确定接收目标返回的目标数据的数据传输链路为间接传输链路,采用该间接传输链路接收目标设备返回的目标数据。其中,间接传输链路可以为通过云平台转发的链路,即目标设备将目标数据发送至云平台,云平台再将目标数据发送至客户端。
例如,间接传输链路为通过云平台转发的链路,在同一云平台下有三个设备,分别为设备a,设备b与设备c,目标设备为设备a,在将取流请求发送至设备a后,判断客户端与设备a之间的P2P链路的建立结果,若P2P链路建立结果为建立成功,则采用该P2P链路接收设备a返回的目标数据。若P2P链路建立结果为建立失败,则设备a会将目标数据发送至云平台,云平台再将目标数据发送至客户端。
第二种,在将取流请求发送至目标设备之后,客户端直接通过与目标设备之间建立的P2P链路接收目标设备返回的目标数据,如果出现接收失败的情况,即说明客户端与目标设备之间的P2P链路建立失败,无法通过该P2P链路接收目标设备返回的目标数据,此时通过间接传输链路接收目标设备返回的目标数据。其中,间接传输链路可以为通过云平台转发的链路,即目标设备将目标数据发送至云平台,云平台再将目标数据发送至客户端。
本实施例中,一方面,在客户端与目标设备之间的P2P链路建立成功的情况下,通过该P2P链路接收目标设备返回的目标数据,省去了取流过程中由云平台进行数据中转的转发环节,从而降低了取流过程的耗时,提升了取流效率。另一方面,即使在客户端与目标设备之间的P2P链路建立失败的情况下,也可以通过间接传输链路接收目标设备返回的目标数据,不会影响对目标数据的接收。
在一个实施例中,当客户端接收到针对第二设备中的目标设备的取流请求时,若取流信息包括客户端对各第一设备的取流频次,则会对目标设备对应的取流频次及时进行更新,即将目标设备对应的取流频率进行相应的提高和/或取流次数进行相应的增加。若取流信息包括客户端与各第一设备之间建立P2P链路的成功率,则会根据客户端与各第二设备之间的P2P链路的建立结果,及时更新各第二设备分别对应的成功率。若取流信息包括客户端对各第一设备的取流频次和客户端与各第一设备之间建立P2P链路的成功率,则会分别对客户端对各第一设备的取流频次和客户端与各第一设备之间建立P2P链路的成功率进行相应的更新。
本实施例中,通过对取流参数信息中客户端对各第一设备的取流频次和/或客户端对各第一设备之间建立P2P链路的成功率进行及时更新,可以从更新后的取流参数信息中在多个第一设备中确定出用户取流频繁和/或P2P链路建立成功率高的第二设备。
图3是根据本发明一实施例的一种基于P2P链路的取流方法的示意性场景图。如图3所示,该场景包括客户端301和多个第一设备302,第一设备302分别包括有设备a、设备b、设备c……等等。
客户端301,用于获取取流参数信息,根据取流参数信息从多个第一设备303中确定至少一个第二设备,与各第二设备之间建立P2P链路,接收针对第二设备中的目标设备的取流请求,将取流请求发送至目标设备,根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。
第一设备302,用于接收客户端301发送的取流请求,根据与客户端之间的P2P链路建立结果,采用对应的数据传输链路向客户端发送目标数据。
通过客户端与第一设备之间的交互,可以实现在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端与设备之间的P2P资源利用率。
图4是根据本发明另一实施例的一种基于P2P链路的取流方法的示意性流程图。在本实施例中,该基于P2P链路的取流方法应用于客户端。如图4所示,该方法可以包括以下步骤S401-S406
S401,客户端登录后,获取取流参数信息。
其中,取流参数信息包括以下至少一项:客户端对各第一设备的取流频次、客户端与各第一设备之间建立P2P链路的成功率。取流参数信息可以从客户端的数据库中或者缓存中读取。
S402,根据客户端对各第一设备的取流频次和/或客户端与各第一设备之间建立P2P链路的成功率,确定各第一设备分别对应的优先级。
其中,第一设备为提供流数据的设备,例如图像采集设备或音视频采集设备等等。确定各第一设备分别对应的优先级的具体方法已在上述实施例中详细说明,此处不再赘述。
S403,根据各第一设备分别对应的优先级,从多个第一设备中确定与第一数量相匹配的至少一个第二设备。
其中,取流参数信息还包括预先配置的第二设备的第一数量,从多个第一设备中确定与第一数量相匹配的至少一个第二设备的具体方法已在上述实施例中详细说明,此处不再赘述。
S404,建立客户端与各第二设备之间的P2P链路。
其中,建立客户端与各第二设备之间的P2P链路的具体方法已在图2所示实施例中详细说明,此处不再赘述。
S405,当接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备。
S406,根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。
其中,采用对应的数据传输链路接收目标设备返回的目标数据的具体方法已在上述实施例中详细说明,此处不再赘述。
本实施例中,通过客户端获取取流参数信息,根据取流参数信息,从多个第一设备中确定至少一个第二设备,然后与各第二设备之间建立P2P链路。当客户端接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备,然后根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。可见,该技术方案一方面能够在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端与设备之间的P2P资源利用率
综上,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
以上为本申请实施例提供的一种基于P2P链路的取流方法,基于同样的思路,本申请实施例还提供了一种基于P2P链路的取流装置。
图5是根据本发明一实施例的一种基于P2P链路的取流装置的示意性框图,如图5所示,该装置包括:
获取模块510,用于获取取流参数信息,所述取流参数信息包括以下至少一项:所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
建立模块520,用于根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
发送模块530,用于当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
接收模块540,用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
可选地,所述建立模块520包括:
第一确定单元,用于根据所述取流频次和/或所述成功率,确定各所述第一设备分别对应的优先级;
第二确定单元,用于根据各所述第一设备分别对应的所述优先级,从多个所述第一设备中确定与所述第一数量相匹配的至少一个所述第二设备。
可选地,所述建立模块520还包括:
建立单元,用于在建立与所述第一数量个所述第二设备之间的所述P2P链路的过程中,若与第二数量个所述第二设备之间的所述P2P链路建立失败,则根据所述优先级重新选择所述第二数量个所述第二设备,并建立所述客户端与重新选择的所述第二数量个所述第二设备之间的所述P2P链路;所述第二数量小于或等于所述第一数量。
可选地,所述装置还包括:
第一确定模块,用于确定各所述第一设备对应的排序信息;
第二确定模块,用于根据获取到的所述排序信息,确定至少一个所述第一设备与所述客户端之间建立所述P2P链路的优先级;
处理模块,用于根据所述优先级,建立至少一个所述第一设备与所述客户端之间的所述P2P链路。
可选地,所述接收模块540包括:
第一接收单元,用于若所述P2P链路建立结果为建立成功,则采用所述P2P链路接收所述目标设备返回的所述目标数据;其中,所述数据传输链路为所述P2P链路;若所述P2P链路建立结果为建立失败,则采用间接传输链路接收所述目标设备返回的所述目标数据;其中,所述数据传输链路为所述间接传输链路。
可选地,所述接收模块540还包括:
第二接收单元,用于采用所述P2P链路接收所述目标设备返回的所述目标数据;若接收失败,则采用间接传输链路接收所述目标设备返回的所述目标数据。
可选的,所述装置还包括:
更新模块,用于基于所述取流请求更新所述目标设备对应的所述取流频次;和/或,根据所述客户端与各所述第二设备之间的所述P2P链路建立结果,更新各所述第二设备分别对应的所述成功率。
本实施例提供的基于P2P链路的取流装置,通过客户端获取取流参数信息,根据取流参数信息,从多个第一设备中确定至少一个第二设备,然后与各第二设备之间建立P2P链路。当客户端接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备,然后根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。可见,该技术方案一方面能够在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端与设备之间的P2P资源利用率。
本领域的技术人员应可理解,图5中的基于P2P链路的取流装置能够用来实现前文所述的基于P2P链路的取流方法,其中的细节描述应与前文方法部分描述类似,为避免繁琐,此处不另赘述。
基于同样的思路,本申请实施例还提供了一种基于P2P链路的取流系统。
图6是根据本发明一实施例的一种基于P2P链路的取流系统的示意性框图,如图6所示,基于P2P链路的取流系统包括:云平台610、客户端620和第一设备630;
所述云平台610,用于存储取流参数信息,所述取流参数信息包括以下至少一项:所述客户端620对各所述第一设备630的取流频次、所述客户端620与各所述第一设备630之间建立P2P链路的成功率;
所述客户端620,用于从所述云平台610中获取所述取流参数信息根据所述取流参数信息,从多个所述第一设备630中确定至少一个第二设备;建立所述客户端620与各所述第二设备之间的所述P2P链路;当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
所述第二设备中的目标设备,用于采用所述P2P链路,接收所述客户端620发送的所述取流请求,根据所述取流请求,向所述客户端620发送目标数据;
所述客户端620,还用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
可选地,所述第二设备中的目标设备,还用于若所述P2P链路建立结果为失败,则将所述目标数据发送至所述云平台610;所述云平台610,还用于接收所述目标设备发送的所述目标数据,将所述目标数据发送至所述客户端620;所述客户端620,还用于接收所述云平台610发送的所述目标数据。
本实施例提供的基于P2P链路的取流系统,通过客户端从云平台中获取取流参数信息,根据取流参数信息,从多个第一设备中确定至少一个第二设备,然后与各第二设备之间建立P2P链路。当客户端接收到针对第二设备中的目标设备的取流请求时,将取流请求发送至目标设备,然后根据与目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收目标设备返回的目标数据。可见,该系统一方面能够在客户端取流之前,提前建立与第一设备之间的P2P链路,利用建立好的P2P链路进行取流,从而降低了取流过程的耗时,提升了取流效率。另一方面,通过根据取流参数信息优先选择用户取流频繁和/或P2P链路建立成功率高的第二设备建立P2P链路,使得客户端取流时能够优先利用P2P链路进行取流,从而提高了客户端与设备之间的P2P资源利用率。
基于同样的思路,本申请实施例还提供一种基于P2P链路的取流设备,如图7所示。基于P2P链路的取流设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对基于P2P链路的取流设备中的一系列计算机可执行指令。更进一步地,处理器701可以设置为与存储器702通信,在基于P2P链路的取流设备上执行存储器702中的一系列计算机可执行指令。基于P2P链路的取流设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706。
具体在本实施例中,基于P2P链路的取流设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对基于P2P链路的取流设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
获取取流参数信息,所述取流参数信息包括以下至少一项:所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
本申请实施例还提出了一种存储介质,该存储介质存储一个或多个计算机程序,该一个或多个计算机程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行上述基于P2P链路的取流方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种基于P2P链路的取流方法,其特征在于,应用于客户端,所述方法包括:
获取取流参数信息,所述取流参数信息包括以下至少一项:预先设定的获取周期内所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述取流参数信息还包括预先配置的所述第二设备的第一数量;
所述根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备,包括:
根据所述取流频次和/或所述成功率,确定各所述第一设备分别对应的优先级;
根据各所述第一设备分别对应的所述优先级,从多个所述第一设备中确定与所述第一数量相匹配的至少一个所述第二设备。
3.根据权利要求2所述的方法,其特征在于,所述第二设备包括所述第一数量个;
所述建立所述客户端与各所述第二设备之间的所述P2P链路,包括:
在建立与所述第一数量个所述第二设备之间的所述P2P链路的过程中,若与第二数量个所述第二设备之间的所述P2P链路建立失败,则根据所述优先级重新选择所述第二数量个所述第二设备,并建立所述客户端与重新选择的所述第二数量个所述第二设备之间的所述P2P链路;所述第二数量小于或等于所述第一数量。
4.根据权利要求1所述的方法,其特征在于,所述获取取流参数信息之前,所述方法还包括:
确定各所述第一设备对应的排序信息;
根据获取到的所述排序信息,确定至少一个所述第一设备与所述客户端之间建立所述P2P链路的优先级;
根据所述优先级,建立至少一个所述第一设备与所述客户端之间的所述P2P链路。
5.根据权利要求4所述的方法,其特征在于,所述建立至少一个所述第一设备与所述客户端之间的所述P2P链路之后,所述方法还包括:
利用心跳机制,维持至少一个所述第一设备与所述客户端之间的所述P2P链路;以及,监测所述P2P链路的连接状态;
若所述连接状态为断开,则重新建立至少一个所述第一设备与所述客户端之间的所述P2P链路。
6.根据权利要求1所述的方法,其特征在于,所述根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据,包括:
若所述P2P链路建立结果为建立成功,则采用所述P2P链路接收所述目标设备返回的所述目标数据;其中,所述数据传输链路为所述P2P链路;
若所述P2P链路建立结果为建立失败,则采用间接传输链路接收所述目标设备返回的所述目标数据;其中,所述数据传输链路为所述间接传输链路。
7.根据权利要求1所述的方法,其特征在于,所述根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据,包括:
采用所述P2P链路接收所述目标设备返回的所述目标数据;
若接收失败,则采用间接传输链路接收所述目标设备返回的所述目标数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述取流请求更新所述目标设备对应的所述取流频次;
和/或,
根据所述客户端与各所述第二设备之间的所述P2P链路建立结果,更新各所述第二设备分别对应的所述成功率。
9.一种基于P2P链路的取流装置,其特征在于,应用于客户端,所述装置包括:
获取模块,用于获取取流参数信息,所述取流参数信息包括以下至少一项:预先设定的获取周期内所述客户端对各第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
建立模块,用于根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;
发送模块,用于当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
接收模块,用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
10.一种基于P2P链路的取流系统,其特征在于,包括:客户端、第一设备和云平台,其中:
所述云平台,用于存储取流参数信息,所述取流参数信息包括以下至少一项:预先设定的获取周期内所述客户端对各所述第一设备的取流频次、所述客户端与各所述第一设备之间建立P2P链路的成功率;
所述客户端,用于从所述云平台中获取所述取流参数信息,根据所述取流参数信息,从多个所述第一设备中确定至少一个第二设备;建立所述客户端与各所述第二设备之间的所述P2P链路;当接收到针对所述第二设备中的目标设备的取流请求时,将所述取流请求发送至所述目标设备;所述取流请求中携带有所述目标设备的标识信息;
所述第二设备中的目标设备,用于采用所述P2P链路,接收所述客户端发送的所述取流请求,根据所述取流请求,向所述客户端发送目标数据;
所述客户端,还用于根据与所述目标设备之间的P2P链路建立结果,采用对应的数据传输链路接收所述目标设备返回的目标数据。
11.根据权利要求10所述的基于P2P链路的取流系统,其特征在于,所述目标设备,还用于若所述P2P链路建立结果为建立失败,则将所述目标数据发送至所述云平台;
所述云平台,还用于接收所述目标设备发送的所述目标数据,将所述目标数据发送至所述客户端;
所述客户端,还用于接收所述云平台发送的所述目标数据。
12.一种基于P2P链路的取流设备,其特征在于,包括处理器和与所述处理器电连接的存储器,所述存储器存储有计算机程序,所述处理器用于从所述存储器调用并执行所述计算机程序以实现如权利要求1-8中任一项所述的基于P2P链路的取流方法。
13.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序在被处理器执行时以实现如权利要求1-8中任一项所述的基于P2P链路的取流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231173.9A CN114629916B (zh) | 2022-03-09 | 2022-03-09 | 基于p2p链路的取流方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231173.9A CN114629916B (zh) | 2022-03-09 | 2022-03-09 | 基于p2p链路的取流方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629916A CN114629916A (zh) | 2022-06-14 |
CN114629916B true CN114629916B (zh) | 2024-03-29 |
Family
ID=81899730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210231173.9A Active CN114629916B (zh) | 2022-03-09 | 2022-03-09 | 基于p2p链路的取流方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629916B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2237518A1 (en) * | 2009-03-30 | 2010-10-06 | Mitsubishi Electric Corporation | Pre-pushing of popular content in a network of end-user equipments |
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及系统 |
WO2019000421A1 (zh) * | 2017-06-30 | 2019-01-03 | 深圳市汇顶科技股份有限公司 | 鉴权方法、鉴权设备和鉴权系统 |
CN110661860A (zh) * | 2019-09-18 | 2020-01-07 | 华为技术有限公司 | 一种建立通话的方法及通话设备 |
CN111741373A (zh) * | 2019-03-25 | 2020-10-02 | 杭州萤石软件有限公司 | 一种视频数据传输方法和视频源设备 |
CN112492054A (zh) * | 2020-11-05 | 2021-03-12 | 杭州萤石软件有限公司 | 用户数据报协议udp端口的复用方法、装置及设备 |
CN113114610A (zh) * | 2020-01-13 | 2021-07-13 | 杭州萤石软件有限公司 | 一种取流方法、装置及设备 |
-
2022
- 2022-03-09 CN CN202210231173.9A patent/CN114629916B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2237518A1 (en) * | 2009-03-30 | 2010-10-06 | Mitsubishi Electric Corporation | Pre-pushing of popular content in a network of end-user equipments |
CN102355448A (zh) * | 2011-06-29 | 2012-02-15 | 北京原力创新科技有限公司 | 云流媒体数据传输方法及系统 |
WO2019000421A1 (zh) * | 2017-06-30 | 2019-01-03 | 深圳市汇顶科技股份有限公司 | 鉴权方法、鉴权设备和鉴权系统 |
CN111741373A (zh) * | 2019-03-25 | 2020-10-02 | 杭州萤石软件有限公司 | 一种视频数据传输方法和视频源设备 |
CN110661860A (zh) * | 2019-09-18 | 2020-01-07 | 华为技术有限公司 | 一种建立通话的方法及通话设备 |
CN113114610A (zh) * | 2020-01-13 | 2021-07-13 | 杭州萤石软件有限公司 | 一种取流方法、装置及设备 |
CN112492054A (zh) * | 2020-11-05 | 2021-03-12 | 杭州萤石软件有限公司 | 用户数据报协议udp端口的复用方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114629916A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113596191B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN107948324B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN108200165B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN103108089B (zh) | 网络系统的连线建立管理方法及其相关系统 | |
CN108512821B (zh) | 数据传输方法、装置和系统,网闸,交易数据存储方法 | |
KR101938623B1 (ko) | 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이 | |
CN108200158B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN112954406B (zh) | 数据下载方法、装置、计算机设备和存储介质 | |
US10999243B2 (en) | Sharing media among remote access clients in a universal plug and play environment | |
CN112333017B (zh) | 一种服务配置方法、装置、设备及存储介质 | |
EP2709337B1 (en) | Service data processing method, device and system | |
CN113420007A (zh) | 数据库访问的审计处理方法、装置及电子设备 | |
CN113891358B (zh) | 云网络的负载均衡方法、设备及存储介质 | |
CN114666306B (zh) | WebRTC网络连接建立方法和服务器、电子设备及计算机可读存储介质 | |
CN113515392B (zh) | Rpc调用方法、装置、设备及存储介质 | |
CN104935681A (zh) | Sip注册服务器地址的获得方法、设备及系统 | |
CN114629916B (zh) | 基于p2p链路的取流方法、装置及系统 | |
CN111405560B (zh) | 一种通信方法、装置、设备及存储介质 | |
CN107612831B (zh) | 一种访问源站的数据报文的传输方法及装置 | |
US11310310B2 (en) | Communication device for peer-to-peer communication and a communication network using the same | |
CN111315037B (zh) | 通信链路建立方法、装置、计算机设备及存储介质 | |
CN104518983B (zh) | 一种多设备间的通信方法及装置 | |
Chang et al. | Fog computing as a resource-aware enhancement for vicinal mobile mesh social networking | |
CN110798542A (zh) | 一种获取ip地址的方法及系统 | |
CN111385371A (zh) | Mac地址获取方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |