CN114979098A - 一种基于WebRTC的通讯方法、装置及电子设备 - Google Patents
一种基于WebRTC的通讯方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114979098A CN114979098A CN202110688336.1A CN202110688336A CN114979098A CN 114979098 A CN114979098 A CN 114979098A CN 202110688336 A CN202110688336 A CN 202110688336A CN 114979098 A CN114979098 A CN 114979098A
- Authority
- CN
- China
- Prior art keywords
- client
- edge node
- target edge
- media stream
- session
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000005304 joining Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 2
- 206010033799 Paralysis Diseases 0.000 abstract description 9
- 238000011330 nucleic acid test Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241001391944 Commicarpus scandens Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/155—Conference systems involving storage of or access to video conference sessions
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种基于WebRTC的通讯方法、装置及电子设备,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
Description
技术领域
本申请涉及信息通信技术领域,尤其涉及一种基于WebRTC的通讯方法、装置及电子设备。
背景技术
网页实时通信(Web Real-Time Communication,WebRTC)实现了基于网页的视频会议,目的是通过浏览器就可以达到实时通讯的能力。WebRTC本身提供的是1对1的通信模型,在简单穿越(Simple Traversal of UDP over NATs,STUN)服务器、穿透(TraversalUsing Relays around NAT,TURN)服务器的辅助下,如果能实现网络地址转换(NetworkAddress Translation,NAT)穿越,那么终端之间是可以直接进行媒体流数据交换的。如果不能实现NAT穿越,那么只能通过TURN服务器进行数据转发的方式实现通信。在多对多通信场景中,WebRTC的分布式架构(Selective Forwarding Unit,SFU)集中部署TURN服务器,所有终端共享的音视频等媒体流均通过集中部署的TURN服务器进行转发。在TURN服务器接收到某一个终端共享的媒体流之后,转发给房间内的其它终端。如此,当需要共享媒体流的终端数量过多时,集中部署的TURN服务器需要非常高的网络带宽,普通的网络带宽无法满足要求,且TURN服务器的负载过重,很容易导致服务器瘫痪的问题。
发明内容
本申请实施例的目的是提供一种基于WebRTC的通讯方法、装置及电子设备,以解决网络带宽无法满足要求,服务器负载过重,容易导致服务器瘫痪的问题。
为了解决上述技术问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种基于WebRTC的通讯方法,包括:
获取第一客户端发起的连接请求;
根据所述连接请求为所述第一客户端分配目标边缘节点;
基于所述目标边缘节点,建立会话;
响应所述第一客户端和第二客户端加入所述会话的加入请求,通过所述目标边缘节点,向所述第二客户端共享所述第一客户端的第一媒体流。
第二方面,本申请实施例提供了一种WebRTC的通讯装置,包括:
获取模块,用于获取第一客户端发起的连接请求;
分配模块,用于根据所述连接请求为所述第一客户端分配目标边缘节点;
建立模块,用于基于所述目标边缘节点,建立会话;
共享模块,用于响应所述第一客户端和第二客户端加入所述会话的加入请求,通过所述目标边缘节点,向所述第二客户端共享所述第一客户端的第一媒体流。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的基于WebRTC的通讯方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的基于WebRTC的通讯方法步骤。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于WebRTC的通讯方法的第一种流程示意图;
图2为本申请实施例提供的基于WebRTC的通讯方法的第二种流程示意图;
图3为本申请实施例提供的基于WebRTC的通讯方法的第三种流程示意图;
图4为本申请实施例提供的基于WebRTC的通讯方法的第四种流程示意图;
图5为本申请实施例提供的基于WebRTC的通讯装置的模块组成示意图;
图6为本申请实施例提供的电子设备的结构示意图。
具体实施方式
本申请实施例提供了一种基于WebRTC的通讯方法、装置及电子设备,解决了网络带宽无法满足要求,服务器负载过重,容易导致服务器瘫痪的问题。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
在多对多通信场景中,WebRTC的分布式架构(Selective Forwarding Unit,SFU)提供了TURN服务器和多个终端的方案,TURN服务器收到某个终端共享的音视频等媒体流后,就直接将该媒体流转发给房间内的其它终端。当需要共享媒体流的终端数量过多时,需要非常高的网络带宽,普通的网络带宽无法满足要求,且服务器的负载过重,很容易导致服务器瘫痪的问题。
此外,对于端TURN服务器的认证采用的是静态密码或动态获取用户密码认证的方式,其安全性较低,容易发生数据被盗取或篡改的风险。
为此,本申请实施例提供了一种能够解决上述问题的技术方案,具体可以参见下述内容。
示例性的,如图1所示,本申请实施例提供一种基于WebRTC的通讯方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是能够进行媒体流转发的TURN服务器。
该基于WebRTC的通讯方法具体可以包括以下步骤:
在S101中,获取第一客户端发起的连接请求。
具体来讲,在第一客户端存在共享媒体流的需求时,其需要发起连接服务器的连接请求。在该连接请求中携带了用户号段、用户登录信息(如用户名、用户邮箱等)、第一客户端的身份标识号(Identity document,ID)等信息。
在S102中,根据连接请求为第一客户端分配目标边缘节点。
具体来讲,边缘节点是与第一客户端处于同一区域(地理区域或网络区域)的服务器(如TURN服务器)。对于每个客户端而言,可以预先为客户端配置边缘节点,为客户端配置边缘节点的配置策略可以包括节点配置策略和号段配置策略。节点配置策略指的是根据边缘节点的编号、边缘节点的地址以及边缘节点的区域ID号等信息为客户端配置边缘节点,具体是将客户端的ID号等信息与边缘节点的编号、边缘节点的地址以及边缘节点的区域ID信息进行绑定,形成对应关系。号段配置策略指的是根据号段信息以及边缘节点的ID号等信息为客户端配置边缘节点,具体是将客户端的号段信息与边缘节点的编号、边缘节点的地址以及边缘节点的区域ID信息进行绑定,形成对应关系。
在一种可能的实现方式中,S102包括以下步骤:
确定连接请求携带的第一客户端的号段信息,根据号段信息查找为第一客户端预先配置的边缘节点,在查找到预先配置的边缘节点的情况下,从预先配置的边缘节点中确定目标边缘节点并分配至第一客户端,在未查找到第一客户端预先配置的边缘节点的情况下,选取距离第一客户端最近的边缘节点作为目标边缘节点并分配至第一客户端。
具体来讲,在为第一客户端预先配置边缘节点时,可以根据第一客户端所处的地理位置配置边缘节点。将与第一客户端处于同一个地理区域(如处于同一个县或同一个市等)的边缘节点为第一客户端进行配置。边缘节点的数量根据实际情况,可以配置为一个,也可以配置为多个,本申请实施例在此并不作限定。
进一步,如果第一客户端所处的地理区域(私有区域)没有边缘节点时,可以从其它区域(公共区域)选取边缘节点为第一客户端配置。如可以从其它区域选取距离第一客户端最近的边缘节点为第一客户端配置。在第一客户端没有预先配置或者没有查找到第一客户端预先配置的边缘节点的情况下,可以从各个边缘节点中选取距离客户端最近的边缘节点作为目标边缘节点。
在一种可能的实现方式中,从预先配置的边缘节点中确定目标边缘节点并分配至第一客户端包括以下步骤:
在查找到第一客户端预先配置有多个边缘节点的情况下,从多个边缘节点中随机选取一个边缘节点作为目标边缘节点,并分配至第一客户端,或者,从多个边缘节点中选取距离第一客户端最近的边缘节点作为目标边缘节点,并分配至第一客户端。
在S103中,基于目标边缘节点,建立会话。
具体来讲,在确定目标边缘节点之后,第一客户端可以请求目标边缘节点建立会话(即第一客户端向目标边缘节点申请建立一个会话房间)。
在S104中,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
具体来讲,在建立会话房间后,第一客户端和其它的客户端(第二客户端)可以请求加入该会话房间,在该会话房间内,各个客户端之间可以互相共享媒体流。
在一种可能的实现方式中,S104包括以下步骤:
在目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由第一客户端向第二客户端发送第一媒体流。在目标边缘节点进行NAT穿越失败的情况下,利用目标边缘节点向第二客户端转发第一媒体流。
具体来讲,在目标边缘节点进行NAT穿越成功的情况下,第一客户端可以直接向第二客户端发送第一媒体流。在目标边缘节点进行NAT穿越失败的情况下,第一客户端将第一媒体流发送至目标边缘节点,由目标边缘节点将第一媒体流转发给第二客户端。其中,第一媒体流可以为音频、视频或者多媒体文件等。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
示例性的,如图2所示,本申请实施例提供一种基于WebRTC的通讯方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是能够进行媒体流转发的TURN服务器。
该基于WebRTC的通讯方法具体可以包括以下步骤:
在S201中,获取第一客户端发起的连接请求。
在S202中,根据连接请求为第一客户端分配目标边缘节点。
在S203中,通过目标边缘节点,基于OAUTH2对第一客户端进行认证。
具体来讲,在确定目标边缘节点后,由目标边缘节点对第一客户端的身份进行验证。具体是,第一客户端请求目标边缘节点的TURN_REST_API服务,对第一客户端的连接请求中的认证字段的头部Authorization携带Bearer<access_token>进行OAUTH2认证。Bearer<access_token>中携带认证参数,该认证参数包括用户登陆第一客户端时分配的唯一凭证、用户的登录信息(用户名、ID号等)等。TURN_REST_API服务获取到认证参数后,向中心服务器发起校验请求,中心服务器根据预存的第一客户端的参数信息对认证参数进行检验,校验完成后,向TURN_REST_API服务返回校验结果。如果校验成功,则由TURN_REST_API服务向第一客户端返回目标边缘节点的配置信息。目标边缘节点的配置信息包括但不限于目标边缘节点的统一资源标识符(Uniform Resource Identifier,或URI)和动态的用户名口令。第一客户端利用URI和动态的用户名口令发起Websocket连接请求,在认证成功后返回连接结果。如果连接成功,则完成认证过程。如果连接未成功,则重新进行认证。
在S204中,基于目标边缘节点,建立会话。
具体来讲,通过上述目标边缘节点的配置信息,第一客户端发起建立会话的请求,在响应建立会话请求后,建立会话。
在S205中,通过目标边缘节点,基于OAUTH2对第二客户端进行认证。
具体来讲,在建立会话后,第二客户端可以请求加入会话,在加入会话之前,由目标边缘节点对第二客户端进行认证。对第二客户端进行认证的方式可以参照S203中对第一客户端进行认证的过程。本申请实施例在此不再赘述。
在S206中,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
具体来讲,在建立会话后,第一客户端和第二客户端可以向目标边缘节点请求发出加入会话并共享媒体流。具体的,第一客户端加入会话后,发起offer请求和candidate请求。offer请求中携带sdp(第一媒体流)以及第一客户端的端口信息。响应offer请求,向第一客户端返回目标边缘节点的sdp信息(携带目标边缘节点的媒体端口),响应candidate请求返回第一客户端的公网IP地址等信息。第一客户端调用服务器连接服务PeerConnection向目标边缘节点发起媒体流连接请求。在一种可能的实现方式中,目标边缘节点响应媒体流连接请求,在目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由第一客户端向第二客户端发送第一媒体流。在目标边缘节点进行NAT穿越失败的情况下,利用目标边缘节点向第二客户端转发第一媒体流。
值得注意的是,S201、S202、S204以及S206还具有与上述实施例S101至S104相同或类似的实现方式,上述两个实施例相同之处可以互相参照,本申请实施例在此不再赘述。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
此外,通过OAUTH2对第一客户端和第二客户端进行验证的方式,安全性高,提高了媒体流共享的安全性。
示例性的,如图3所示,本申请实施例提供一种基于WebRTC的通讯方法,该方法的执行主体可以为服务器,其中,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,而且,该服务器可以是能够进行媒体流转发的TURN服务器。
在S301中,获取第一客户端发起的连接请求。
在S302中,根据连接请求为第一客户端分配目标边缘节点。
在S303中,基于目标边缘节点,建立会话。
在S304中,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
在S305中,通过目标边缘节点,向第一客户端共享第二客户端的第二媒体流。
具体来讲,第二媒体流包括但不限于音频、视频以及多媒体文件等。在建立会话房间后,第一客户端和其它的客户端(第二客户端)可以请求加入该会话房间,在该会话房间内,各个客户端之间可以互相共享媒体流。
在一种可能的实现方式中,S305包括以下步骤:
在目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由第二客户端向第一客户端发送第二媒体流。在目标边缘节点进行NAT穿越失败的情况下,利用目标边缘节点向第一客户端转发第二媒体流。
具体来讲,在目标边缘节点进行NAT穿越成功的情况下,第二客户端可以直接向第一客户端发送第二媒体流。在目标边缘节点进行NAT穿越失败的情况下,第二客户端将第二媒体流发送至目标边缘节点,由目标边缘节点将第二媒体流转发给第一客户端。
值得注意的是,S301至S304具有与上述实施例S101至S104或相同或S201、S202、S204以及S206类似的实现方式,其可以互相参照,本申请实施例在此不再赘述。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,或者,通过目标边缘节点为加入会话的第一客户端共享第二媒体流。避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
示例性的,如图4所示,本申请实施例提供一种基于WebRTC的通讯方法的线程示意图,以用户终端A和用户终端B进行多方音视频通话为例,基于WebRTC的通讯方法包含核心节点(如主TURN服务器)和边缘节点(如从TURN服务器)。核心节点包括WebRTC配置下发服务,OAUTH2认证服务。边缘节点包括SFU媒体转发服务、ICE服务(STUN服务或TURN服务)和TURN REST API服务。
OAUTH2认证服务基于OAUTH2提供用户终端A和用户终端B的access_token的验证。WebRTC配置下发服务提供为用户终端A和用户终端B分配目标边缘节点的服务。SFU媒体转发服务为用户终端A和用户终端B提供媒体流转发的服务。ICE服务提供SFU与用户终端A和用户终端B之间的NAT穿越建立P2P通道或者进行媒体流转发的服务。TURN REST API服务用于为用户终端A和用户终端B提供配置信息,配置信息包括但不限于边缘节点的统一资源标识符(Uniform Resource Identifier,或URI)和动态的用户名口令。
图4所示的方法包括以下步骤:
在S401中,用户终端A通过号段信息请求获取配置的边缘节点。
在S402中,WebRTC配置下发服务向用户终端A返回边缘节点的信息。
在S403中,用户终端A请求边缘节点的TURN REST API服务,请求获取边缘节点的配置信息,并请求对头部Authorization携带Bearer<access_token>进行OAUTH2的认证。
在S404中,TURN REST API服务获取access_token,向核心节点的OAUTH2认证服务发起校验请求以验证access_token。
在S405中,OAUTH2认证服务向TURN REST API服务返回校验结果。
在S406中,校验通过后,TURN REST API服务向用户终端A返回边缘节点配置信息,如边缘节点为TURN服务器时,配置信息包括TURN服务器的URI和动态的用户名口令。
在S407中,用户终端A向SFU媒体转发服务发起建立Websocket连接请求。
在S408中,认证通过后,SFU媒体转发服务向用户终端A返回连接结果。
在S409中,用户终端A向SFU媒体转发服务发起创建音视频会话房间请求。
在S410中,SFU媒体转发服务创建音视频会话房间,并向用户终端A返回创建结果。
在S411中,用户终端A向SFU媒体转发服务发起加入音视频会话房间的请求。
在S412中,SFU媒体转发服务允许用户终端A加入音视频会话房间,并向用户终端A返回加入结果。
在S413中,用户终端A向SFU媒体转发服务发起offer请求,携带sdp。
在S414中,用户终端A向SFU媒体转发服务发起andidate请求。
在S415中,SFU媒体转发服务收集边缘节点的candidate,并返回至用户终端A。
在S416中,SFU媒体转发服务返回answer服务,携带sdp内容。
在S417中,用户终端A调用WebRTC的Peer Connection向ICE服务发起媒体流连接请求,采用TURN进行媒体转发
在S418中,SFU媒体转发服务调用WebRTC的PeerConnection向ICE服务发起流媒体连接请求,如果ICE服务中的STUN进行NAT穿越成功则进行P2P的传输,否则使用TURN进行媒体转发。
在S419中,用户终端B获取音视频会话房间信息,获取方式可以采用消息方式进行获取。
在S420中,用户终端B通过音视频会话房间中的边缘节点向WebRTC配置下发服务获取边缘节点的配置信息。
在S421中,WebRTC配置下发服务向用户终端B返回边缘节点的配置信息。
在S422至S425中,执行S403至S406相同的操作。
在S426至S427中,执行S407至S408相同的操作。
在S428中,用户终端B向SFU媒体转发服务发起加入音视频会话房间的请求。
在S429中,SFU媒体转发服务向用户终端B返回加入结果,加入结果中携带音视频会话房间内所有的终端的信息。
在S430至S435中,针对每一个作为发布者的终端,执行S413至S418相同的操作。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,或者,通过目标边缘节点为加入会话的第一客户端共享第二媒体流。避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
此外,通过OAUTH2对第一客户端和第二客户端进行验证的方式,安全性高,提高了媒体流共享的安全性。
对应上述实施例提供的基于WebRTC的通讯方法,基于相同的技术构思,本申请实施例还提供了一种基于WebRTC的通讯装置,图5为本申请实施例提供的基于WebRTC的通讯装置的模块组成示意图,该基于WebRTC的通讯装置用于执行图1至图4描述的基于WebRTC的通讯方法,如图5所示,该基于WebRTC的通讯装置包括:获取模块501、分配模块502、建立模块503和共享模块504。
获取模块501,用于获取第一客户端发起的连接请求。分配模块502,用于根据连接请求为第一客户端分配目标边缘节点。建立模块503,用于基于目标边缘节点,建立会话。共享模块504,用于响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
可选地,分配模块502还用于确定连接请求携带的第一客户端的号段信息。根据号段信息查找为第一客户端预先配置的边缘节点。在查找到预先配置的边缘节点的情况下,从预先配置的边缘节点中确定目标边缘节点并分配至第一客户端。在未查找到第一客户端预先配置的边缘节点的情况下,选取距离第一客户端最近的边缘节点作为目标边缘节点并分配至第一客户端。
可选地,分配模块502还用于在查找到第一客户端预先配置有多个边缘节点的情况下,从多个边缘节点中随机选取一个边缘节点作为目标边缘节点,并分配至第一客户端,或者,从多个边缘节点中选取距离第一客户端最近的边缘节点作为目标边缘节点,并分配至第一客户端。
可选地,基于WebRTC的通讯装置还包括:第一认证模块(图中未示出)和第二认证模块(图中未示出)。
第一认证模块,用于通过目标边缘节点,基于OAUTH2对第一客户端进行认证。第二认证模块,用于通过目标边缘节点,基于OAUTH2对第二客户端进行认证。
可选地,共享模块504,还用于在目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由第一客户端向第二客户端发送第一媒体流。在目标边缘节点进行NAT穿越失败的情况下,利用边缘节点向第二客户端转发第一媒体流。
可选地,基于WebRTC的通讯装置还包括:共享模块二。
共享模块二,用于通过目标边缘节点,向第一客户端共享第二客户端的第二媒体流。
可选地,共享模块二,还用于在目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由第二客户端向第一客户端发送第二媒体流。在边缘节点进行NAT穿越失败的情况下,利用目标边缘节点向第一客户端转发第二媒体流。
本申请实施例提供的基于WebRTC的通讯装置能够实现上述基于WebRTC的通讯方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本申请实施例提供的基于WebRTC的通讯装置与本申请实施例提供的基于WebRTC的通讯方法基于同一申请构思,因此该实施例的具体实施可以参见前述基于WebRTC的通讯方法的实施,重复之处不再赘述。
对应上述实施例提供的基于WebRTC的通讯方法,基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备用于执行上述的基于WebRTC的通讯方法,图6为实现本申请各个实施例的一种电子设备的结构示意图,如图6所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图中未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。
更进一步地,处理器601可以设置为与存储器602通信,在电子设备上执行存储器602中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606。
具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以下方法步骤:
获取第一客户端发起的连接请求;
根据连接请求为第一客户端分配目标边缘节点;
基于目标边缘节点,建立会话;
响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
由以上本申请实施例提供的技术方案可见,获取第一客户端发起的连接请求,根据连接请求为第一客户端分配目标边缘节点,基于目标边缘节点,建立会话,响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点向第二客户端共享第一客户端的第一媒体流。如此,在第一客户端发起连接请求后,通过为其分配的目标边缘节点建立会话,且通过目标边缘节点为加入会话的第二客户端共享第一媒体流,避免了所有的客户端都通过集中部署的服务器向其它的客户端共享媒体流的情况发生,分担了TURN服务器的负载,降低了对网络带宽的要求,避免了服务器瘫痪的问题。
本实施例中还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取第一客户端发起的连接请求;
根据连接请求为第一客户端分配目标边缘节点;
基于目标边缘节点,建立会话;
响应第一客户端和第二客户端加入会话的加入请求,通过目标边缘节点,向第二客户端共享第一客户端的第一媒体流。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于WebRTC的通讯方法,其特征在于,所述方法包括:
获取第一客户端发起的连接请求;
根据所述连接请求为所述第一客户端分配目标边缘节点;
基于所述目标边缘节点,建立会话;
响应所述第一客户端和第二客户端加入所述会话的加入请求,通过所述目标边缘节点,向所述第二客户端共享所述第一客户端的第一媒体流。
2.根据权利要求1所述的方法,其特征在于,所述根据所述连接请求为所述第一客户端分配目标边缘节点包括:
确定所述连接请求携带的所述第一客户端的号段信息;
根据所述号段信息查找为所述第一客户端预先配置的边缘节点;
在查找到所述预先配置的边缘节点的情况下,从所述预先配置的边缘节点中确定所述目标边缘节点并分配至所述第一客户端;
在未查找到所述第一客户端预先配置的边缘节点的情况下,选取距离所述第一客户端最近的边缘节点作为所述目标边缘节点并分配至所述第一客户端。
3.根据权利要求2所述的方法,其特征在于,所述从所述预先配置的边缘节点中确定所述目标边缘节点并分配至所述第一客户端包括:
在查找到所述第一客户端预先配置有多个边缘节点的情况下,
从所述多个边缘节点中随机选取一个边缘节点作为所述目标边缘节点,并分配至所述第一客户端,或者,
从所述多个边缘节点中选取距离所述第一客户端最近的边缘节点作为所述目标边缘节点,并分配至所述第一客户端。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述连接请求为所述第一客户端分配目标边缘节点之后,所述方法还包括:
通过所述目标边缘节点,基于OAUTH2对所述第一客户端进行认证;
在所述根据所述目标边缘节点,建立会话之后,在所述响应所述第一客户端和第二客户端加入所述会话的加入请求之前,所述方法还包括:
通过所述目标边缘节点,基于OAUTH2对所述第二客户端进行认证。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述通过所述目标边缘节点,向所述第二客户端共享所述第一客户端的第一媒体流包括:
在所述目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由所述第一客户端向所述第二客户端发送所述第一媒体流;
在所述目标边缘节点进行NAT穿越失败的情况下,利用所述目标边缘节点向所述第二客户端转发所述第一媒体流。
6.根据权利要求5所述的方法,其特征在于,在所述响应所述第一客户端和第二客户端加入所述会话的加入请求之后,所述方法还包括:
通过所述目标边缘节点,向所述第一客户端共享所述第二客户端的第二媒体流。
7.根据权利要求6所述的方法,其特征在于,所述通过所述目标边缘节点,向所述第一客户端共享所述第二客户端的第二媒体流包括:
在所述目标边缘节点进行NAT穿越成功的情况下,以P2P通讯方式由所述第二客户端向所述第一客户端发送所述第二媒体流;
在所述目标边缘节点进行NAT穿越失败的情况下,利用所述目标边缘节点向所述第一客户端转发所述第二媒体流。
8.一种WebRTC的通讯装置,其特征在于,所述装置包括:
获取模块,用于获取第一客户端发起的连接请求;
分配模块,用于根据所述连接请求为所述第一客户端分配目标边缘节点;
建立模块,用于基于所述目标边缘节点,建立会话;
共享模块,用于响应所述第一客户端和第二客户端加入所述会话的加入请求,通过所述目标边缘节点,向所述第二客户端共享所述第一客户端的第一媒体流。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-7任一项所述的基于WebRTC的通讯方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的基于WebRTC的通讯方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688336.1A CN114979098A (zh) | 2021-06-21 | 2021-06-21 | 一种基于WebRTC的通讯方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688336.1A CN114979098A (zh) | 2021-06-21 | 2021-06-21 | 一种基于WebRTC的通讯方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114979098A true CN114979098A (zh) | 2022-08-30 |
Family
ID=82973272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110688336.1A Pending CN114979098A (zh) | 2021-06-21 | 2021-06-21 | 一种基于WebRTC的通讯方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979098A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436904A (zh) * | 2023-05-04 | 2023-07-14 | 江苏常熟农村商业银行股份有限公司 | 流媒体数据推流方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414800A (zh) * | 2013-08-13 | 2013-11-27 | 南京师范大学 | 一种nat穿越中分布式中继服务器的分配和选择方法及系统 |
CN108418789A (zh) * | 2018-01-22 | 2018-08-17 | 网宿科技股份有限公司 | 一种基于WebRTC的通信系统及其通信方法、信令服务器 |
CN109274634A (zh) * | 2017-07-18 | 2019-01-25 | 腾讯科技(深圳)有限公司 | 多媒体通信方法及装置、存储介质 |
CN110417916A (zh) * | 2015-02-24 | 2019-11-05 | 深圳梨享计算有限公司 | 能够回馈收益的内容分发方法、中心节点及边缘节点 |
-
2021
- 2021-06-21 CN CN202110688336.1A patent/CN114979098A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414800A (zh) * | 2013-08-13 | 2013-11-27 | 南京师范大学 | 一种nat穿越中分布式中继服务器的分配和选择方法及系统 |
CN110417916A (zh) * | 2015-02-24 | 2019-11-05 | 深圳梨享计算有限公司 | 能够回馈收益的内容分发方法、中心节点及边缘节点 |
CN109274634A (zh) * | 2017-07-18 | 2019-01-25 | 腾讯科技(深圳)有限公司 | 多媒体通信方法及装置、存储介质 |
CN108418789A (zh) * | 2018-01-22 | 2018-08-17 | 网宿科技股份有限公司 | 一种基于WebRTC的通信系统及其通信方法、信令服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436904A (zh) * | 2023-05-04 | 2023-07-14 | 江苏常熟农村商业银行股份有限公司 | 流媒体数据推流方法、装置、服务器及存储介质 |
CN116436904B (zh) * | 2023-05-04 | 2024-06-07 | 江苏常熟农村商业银行股份有限公司 | 流媒体数据推流方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110191031B (zh) | 网络资源访问方法、装置、电子设备 | |
US9357076B2 (en) | Load balancing of distributed media agents in a conference system | |
KR101727234B1 (ko) | 콘텐츠 중심 네트워크에서 네트워크 주소 변환기를 갖는 관리자 라우팅 | |
US9614687B2 (en) | Dynamic configuration of a conference system with distributed media agents | |
WO2023000935A1 (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
US9699237B2 (en) | Managed media relay selection for real-time communications | |
CN103384237A (zh) | 一种共享IaaS业务云账号的方法、及共享平台和网络装置 | |
EP3095229B1 (en) | Method and nodes for configuring a communication path for a media service | |
US8683551B2 (en) | Peer-to-peer network | |
WO2021057348A1 (zh) | 一种服务器安全防御方法及系统、通信设备、存储介质 | |
US11277454B2 (en) | Conference session access using reachability information for distributed clusters of media nodes | |
WO2017020790A1 (zh) | 多屏控制方法及装置 | |
US20190089648A1 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
EP3215949A1 (en) | A new instant messaging (im) system | |
EP4135296A1 (en) | Real-time communication (rtc) connection method, server, and storage medium | |
WO2016180188A1 (zh) | 分发建链方法、装置和系统 | |
CN114979098A (zh) | 一种基于WebRTC的通讯方法、装置及电子设备 | |
CN103327087A (zh) | 一种会议控制的方法及装置 | |
CN108617014A (zh) | 一种业务承载建立方法和网络设备 | |
CN108881118B (zh) | 一种ims级联组网方法及设备 | |
US8667564B1 (en) | Mobile internet protocol V6 SIP proxy bootstrapping | |
CN111315037B (zh) | 通信链路建立方法、装置、计算机设备及存储介质 | |
CN114285802A (zh) | 网络负载均衡方法、装置、电子设备、介质和程序产品 | |
EP3264724B1 (en) | Method and apparatus for sending, transferring and acquiring capability | |
EP3085057B1 (en) | Distributing content data to resource constrained devices in a segment of a p2p network |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220830 |