数据传输方法和系统、电子装置及计算机可读存储介质制造方法及图纸

技术编号:20628046 阅读:23 留言:0更新日期:2019-03-20 17:38
本发明专利技术公开了一种数据传输方法,应用于客户端,该方法包括:向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道;若所述P2P数据传输通道建立成功,则与所述对方客户端进行P2P音视频通信;若所述P2P数据传输通道建立失败,则通过SFU节点与所述对方客户端进行音视频数据中转通信。本发明专利技术还提供一种数据传输系统、电子装置及计算机可读存储介质。本发明专利技术能够降低带宽成本和运营成本,并可以支撑大量用户之间的音视频通信。

Data transmission methods and systems, electronic devices and computer readable storage media

The invention discloses a data transmission method, which is applied to the client. The method includes: sending a hole-drilling request to the STUN server to request the establishment of a P2P data transmission channel with the other client; if the P2P data transmission channel is successfully established, carrying out P2P audio and video communication with the other client; if the establishment of the P2P data transmission channel fails, the method is described through the SFU node. Audio and video data transfer communication is carried out on the client side. The invention also provides a data transmission system, an electronic device and a computer readable storage medium. The invention can reduce bandwidth cost and operation cost, and can support audio and video communication among a large number of users.

【技术实现步骤摘要】
数据传输方法和系统、电子装置及计算机可读存储介质
本专利技术涉及数据传输
,尤其涉及一种数据传输方法和系统、电子装置及计算机可读存储介质。
技术介绍
现有的基于P2P方式做VoIP(VoiceoverInternetProtocol,网络电话)音视频通信的技术方案,包括:用户a与用户b经过STUN(SimpleTraversalofUDPoverNATs,NAT的UDP简单穿越)服务器建立P2P打洞数据传输通道,如果成功,则通过该P2P打洞数据传输通道做P2P音视频通信;如果失败,则通过公网上的中继(relay)服务器做音视频数据中转通信。但是,这种方式存在着如下的缺陷:如果线上支持百万用户之间做VoIP音视频通信,但公网的relay服务器节点是有限的,很可能无法满足大量用户之间的中转需求。而且,为了保证音视频通讯质量,采用的relay服务器的带宽运营费用昂贵,导致通信成本很高。
技术实现思路
有鉴于此,本专利技术提出一种数据传输方法和系统、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。首先,为实现上述目的,本专利技术提出一种数据传输方法,应用于客户端,所述方法包括:向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道;若所述P2P数据传输通道建立成功,则与所述对方客户端进行P2P音视频通信;及若所述P2P数据传输通道建立失败,则通过选择性转发单元SFU节点与所述对方客户端进行音视频数据中转通信。可选地,所述方法还包括:当所述客户端与所述对方客户端之间的P2P数据传输通道建立失败,且无法通过所述SFU节点进行中转通信时,通过公网中继服务器进行与所述对方客户端之间的中转数据传输。可选地,所述向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道包括:通过就近区域的所述STUN服务器获取自身的外网IP和端口;通过Internet网络向所述对方客户端发送自身的外网IP和端口;通过Internet网络获取所述对方客户端的IP和端口;向所述对方客户端的外网IP和端口发送测试数据包,并接收所述对方客户端发送的测试数据包,以建立所述P2P数据传输通道。可选地,所述通过SFU节点与所述对方客户端进行音视频数据中转通信包括:选取与所述客户端及所述对方客户端均可成功建立P2P数据传输通道的所述SFU节点;所述客户端通过与所述SFU节点之间的P2P数据传输通道传输音视频数据至所述SFU节点,以通过所述SFU节点与所述对方客户端之间的P2P数据传输通道将所述音视频数据中转至所述对方客户端;所述客户端通过与所述SFU节点之间的P2P数据传输通道接收所述SFU节点中转的所述对方客户端发送的音视频数据。可选地,所述选取与所述客户端及所述对方客户端均可成功建立P2P数据传输通道的所述SFU节点包括:根据所述客户端和所述对方客户端的NAT类型,选择能够与所述NAT类型进行P2P数据传输的多个SFU节点;按照预设规则从所述多个SFU节点中选取一个,尝试与所述客户端和所述对方客户端分别建立P2P数据传输通道,若两条P2P数据传输通道均能建立成功,则将所述SFU节点作为所述客户端和所述对方客户端之间的中转;若所述客户端或所述对方客户端与所述SFU节点之间的P2P数据传输通道建立失败,则继续选取下一个SFU节点,尝试与所述客户端和所述对方客户端分别建立P2P数据传输通道,直至找到与所述客户端和所述对方客户端都能够成功建立P2P数据传输通道的SFU节点;若不存在与所述客户端和所述对方客户端都能够成功建立P2P数据传输通道的SFU节点,则所述客户端和所述对方客户端无法通过所述SFU节点进行中转通信。可选地,所述SFU节点为内容分发网络中的节点。此外,为实现上述目的,本专利技术还提供一种电子装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如上述的数据传输方法。进一步地,为实现上述目的,本专利技术还提供数据传输系统,所述系统包括:STUN服务器;选择性转发单元SFU节点;至少两个客户端;两个所述客户端向对应的所述STUN服务器发送打洞请求,以请求与对方建立P2P数据传输通道;若所述P2P数据传输通道建立成功,则两个所述客户端之间通过所述P2P数据传输通道进行P2P音视频通信;若所述P2P数据传输通道建立失败,则两个所述客户端之间通过所述SFU节点进行音视频数据中转通信。可选地,当两个所述客户端之间的P2P数据传输通道建立失败,且无法通过所述SFU节点进行中转通信时,两个所述客户端通过公网中继服务器做中转数据传输。可选地,所述两个所述客户端之间通过所述SFU节点进行音视频数据中转通信包括:选取与所述两个客户端均可成功建立P2P数据传输通道的所述SFU节点;所述两个客户端分别通过与所述SFU节点之间的P2P数据传输通道传输音视频数据至所述SFU节点,以通过所述SFU节点与对方客户端之间的P2P数据传输通道将所述音视频数据中转至对方客户端;所述两个客户端分别通过与所述SFU节点之间的P2P数据传输通道接收所述SFU节点中转的对方客户端发送的音视频数据。可选地,所述SFU节点为内容分发网络中的节点。进一步地,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据传输程序,所述数据传输程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据传输方法。相较于现有技术,本专利技术所提出的数据传输方法和系统、电子装置及计算机可读存储介质,由于SFU节点分布在用户的设备上,带宽传输可以免费使用,所以相比于通过公网中继服务器进行中继服务的方案来说,带宽成本和运营成本会降低很多。另外,同时在线的用户越多,可作为SFU节点的设备就越多,因此可以支撑大量用户之间的音视频通信。附图说明图1是本专利技术第一实施例提出的一种数据传输方法的流程示意图;图2是图1中S10的细化流程示意图;图3是图1中S14的细化流程示意图;图4是本专利技术第二实施例提出的一种数据传输方法的流程示意图;图5是本专利技术第三实施例提出的一种电子装置的架构示意图;图6是本专利技术第四实施例提出的一种数据传输系统的架构示意图;图7是本专利技术第五实施例提出的一种数据传输方法的流程示意图;图8是图7中S30的细化流程示意图;图9是图7中S34的细化流程示意图;图10是本专利技术第六实施例提出的一种数据传输方法的流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结本文档来自技高网...

【技术保护点】
1.一种数据传输方法,应用于客户端,其特征在于,所述方法包括:向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道;若所述P2P数据传输通道建立成功,则与所述对方客户端进行P2P音视频通信;及若所述P2P数据传输通道建立失败,则通过选择性转发单元SFU节点与所述对方客户端进行音视频数据中转通信。

【技术特征摘要】
1.一种数据传输方法,应用于客户端,其特征在于,所述方法包括:向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道;若所述P2P数据传输通道建立成功,则与所述对方客户端进行P2P音视频通信;及若所述P2P数据传输通道建立失败,则通过选择性转发单元SFU节点与所述对方客户端进行音视频数据中转通信。2.如权利要求1所述的数据传输方法,其特征在于,所述方法还包括:当所述客户端与所述对方客户端之间的P2P数据传输通道建立失败,且无法通过所述SFU节点进行中转通信时,通过公网中继服务器进行与所述对方客户端之间的中转数据传输。3.如权利要求1或2所述的数据传输方法,其特征在于,所述向STUN服务器发送打洞请求,以请求与对方客户端建立P2P数据传输通道包括:通过就近区域的所述STUN服务器获取自身的外网IP和端口;通过Internet网络向所述对方客户端发送自身的外网IP和端口;通过Internet网络获取所述对方客户端的IP和端口;向所述对方客户端的外网IP和端口发送测试数据包,并接收所述对方客户端发送的测试数据包,以建立所述P2P数据传输通道。4.如权利要求1或2所述的数据传输方法,其特征在于,所述通过SFU节点与所述对方客户端进行音视频数据中转通信包括:选取与所述客户端及所述对方客户端均可成功建立P2P数据传输通道的所述SFU节点;所述客户端通过与所述SFU节点之间的P2P数据传输通道传输音视频数据至所述SFU节点,以通过所述SFU节点与所述对方客户端之间的P2P数据传输通道将所述音视频数据中转至所述对方客户端;所述客户端通过与所述SFU节点之间的P2P数据传输通道接收所述SFU节点中转的所述对方客户端发送的音视频数据。5.如权利要求4所述的数据传输方法,其特征在于,所述选取与所述客户端及所述对方客户端均可成功建立P2P数据传输通道的所述SFU节点包括:根据所述客户端和所述对方客户端的网络地址转换NAT类型,选择能够与所述NAT类型进行P2P数据传输的多个SFU节点;按照预设规则从所述多个SFU节点中选取一个,尝试与所述客户端和所述对方客户端分别建立P2P数据传输通道,若两条P2P数据传输通道均能建立成功,则将所述SFU节点作为所述客户端和所述对方客户端之间的中转;若所述客户端或所述对方客户端与所述SFU节点之间的P2...

【专利技术属性】
技术研发人员:林伟
申请(专利权)人:深圳市网心科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1