CN112788053A - 一种实时通信方法、装置、服务器、系统及存储介质 - Google Patents

一种实时通信方法、装置、服务器、系统及存储介质 Download PDF

Info

Publication number
CN112788053A
CN112788053A CN202110097977.XA CN202110097977A CN112788053A CN 112788053 A CN112788053 A CN 112788053A CN 202110097977 A CN202110097977 A CN 202110097977A CN 112788053 A CN112788053 A CN 112788053A
Authority
CN
China
Prior art keywords
user equipment
signaling
server
media server
media
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
Application number
CN202110097977.XA
Other languages
English (en)
Inventor
江凌生
王生明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd, Shenzhen Huantai Technology Co Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110097977.XA priority Critical patent/CN112788053A/zh
Publication of CN112788053A publication Critical patent/CN112788053A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Abstract

本申请实施例公开了一种实时通信方法、装置、服务器、系统及存储介质,该方法应用于第一信令服务器,该方法包括:接收第一用户设备的第一信令信息;发送第一信令信息给第二用户设备;根据最优路径选择策略为第一用户设备选择第一媒体服务器;获取第一媒体服务器的第一标识信息,并发送给第一用户设备,以使得第一用户设备根据第一标识信息与第一媒体服务器建立第一数据传输通道。如此,通过将媒体服务和信令服务解耦和,利用信令服务器实现第一用户设备与第二用户设备之间的信令交互,利用媒体服务器实现二者之间的媒体数据交互,实现服务和流量分散,满足大流量产品需求,组成一种可用性高且扩展性强的实时通信构架,从而提高实时通信效率。

Description

一种实时通信方法、装置、服务器、系统及存储介质
技术领域
本申请涉及实时通信技术,尤其涉及一种实时通信方法、装置、服务器、系统及存储介质。
背景技术
随着第五代移动通信技术(5th-Generation,5G)高速低延迟网络时代的到来,用户对高清低延迟的在线音视频类的产品需求也日益增长,如远程协助、高清视频通话、直播、在线教育/医疗、视频会议、云游戏、云应用等,也因此更快的催生了(Real-TimeCommunications,RTC)技术的飞速发展。
目前,RTC流媒体服务器在架构设计上都存在致命的缺陷,那就是缺乏高可用高并发的支撑,并不能在大规模的商用RTC产品模式下直接复用现有的开源选择转发单元(Selective Forwarding Unit,SFU)。如图1所示,在RTC流媒体服务器的架构中部署了多台SFU服务器,如果用户A选中SFU2服务器,那么其他用户(包括用户A至用户N)都必须要连到SFU2服务器与用户A进行交互,这种通信模式没法满足大规模商用产品的需求。
发明内容
为解决上述技术问题,本申请实施例期望提供一种实时通信方法、装置、服务器、系统及存储介质。
本申请的技术方案是这样实现的:
第一方面,提供了一种实时通信方法,应用于第一信令服务器,所述方法包括:
接收第一用户设备的第一信令信息;
发送所述第一信令信息给第二用户设备;
为所述第一用户设备选择第一媒体服务器;
获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
第二方面,提供了一种实时通信方法,应用于第一媒体服务器,所述方法包括:
接收第一用户设备的第一连接请求;
根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
第三方面,提供了一种实时通信装置,应用于第一信令服务器,所述装置包括:
通信单元,用于接收第一用户设备的第一信令信息;发送所述第一信令信息给第二用户设备;
处理单元,用于为所述第一用户设备选择第一媒体服务器;
所述通信单元,还用于获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
第四方面,一种实时通信装置,应用于第一媒体服务器,所述装置包括:
通信单元,用于接收第一用户设备的第一连接请求;
处理单元,用于根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
第五方面,提供了一种信令服务器,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行前述第一方面方法的步骤。
第六方面,提供了一种媒体服务器,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行前述第二方面方法的步骤。
第七方面,提供了一种实时通信系统,所述系统包括:信令服务器集群和媒体服务器集群,所述信令服务器集群中包括本申请中至少一个信令服务器,所述媒体服务器集群中包括本申请中至少一个媒体服务器;
所述信令服务器用于实现用户设备之间的信令交互,所述媒体服务器用于实现用户设备之间的媒体数据交互。
第八方面,提供了一种计算机存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。
本申请实施例中提供了一种实时通信方法、装置、服务器、系统及存储介质,该方法应用于第一信令服务器,该方法包括:接收第一用户设备的第一信令信息;发送所述第一信令信息给第二用户设备;为所述第一用户设备选择第一媒体服务器;获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。如此,通过将媒体服务和信令服务解耦和,利用信令服务器实现第一用户设备与第二用户设备之间的信令交互,利用媒体服务器实现二者之间的媒体数据交互,实现服务和流量分散,满足大流量产品需求,将实时通信系统设计成分布式构架,组成一种可用性高且扩展性强的实时通信构架,从而提高实时通信效率。
附图说明
图1为开源SFU通用架构的组成结构图;
图2为本申请实施例中实时通信系统的第一构架示意图;
图3为本申请实施例中实时通信方法的第一流程示意图;
图4为本申请实施例中实时通信系统的第二构架示意图;
图5为本申请实施例中实时通信方法的第二流程示意图;
图6为本申请实施例中实时通信方法的第三流程示意图;
图7为本申请实施例中实时通信装置的第一组成结构示意图;
图8为本申请实施例中实时通信装置的第二组成结构示意图;
图9为本申请实施例中信令服务器的组成结构示意图;
图10为本申请实施例中媒体服务器的组成结构示意图;
图11为本申请实施例中实时通信系统的第三构架示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请实施例提供了一种实时通信方法,应用于实时通信系统中,图2为本申请实施例中实时通信系统的第一构架示意图,如图2所示,实时通信系统包括:信令服务器集群21和媒体服务器集群22,信令服务器集群21包括M个信令服务器,媒体服务器集群22包括N个媒体服务器,信令服务器,用于处理第一用户设备和第二用户设备在实时通信时的交互信令,媒体服务器包,用于传输用户设备之间的媒体数据。
本申请实施例提供的实时通信方法可以用于与视频直播、视频会议、在线教育等领域。
本申请实施例中,用户设备包括两个及以上个用户设备,其中包括媒体数据的生产者和媒体数据的消费者。需要说明的是,本申请实施例中第一用户设备可以作为生产者也可以作为消费者,同样第二用户设备也可以作为生产者也可以作为消费者。示例性的,用户设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备等。
需要说明的是,本申请实施例中信令服务器不仅具备信令转发功能,还具备媒体服务器的调度功能,根据最优路径选择策略为所连接的用户设备选择最优的媒体服务器。
第一信令信息为第一用户设备发送给第二用户设备的信令信息,第二信令信息为第二用户设备发送给第一用户设备的信令信息,第一信令服务器用于向第二用户设备转发第一信令信息,第二信令服务器用于向第一用户设备转发第二信令信息,且网络负载均衡设备可以为第一用户设备和第二用户设备选择相同的信令服务器,即第一信令服务器和第二信令服务器为同一个信令服务器,在进行信令转发时无需建立中间信令传输通道。
第一媒体数据为第一用户设备生成发送给第二用户设备的媒体数据,第二媒体数据为第二用户设备生成发送给第一用户设备的媒体数据,若第一用户设备为媒体数据的生产者,第二用户设备作为媒体数据的消费者,则主要是第一用户设备向第二用户设备发送媒体数据。第一媒体服务器用于向第二用户设备转发第一媒体数据,第二媒体服务器用于向第一用户设备转发第二媒体数据。信令服务器可以为第一用户设备和第二用户设备选择相同的媒体服务器,即第一媒体服务器和第二媒体服务器为同一个媒体服务器,在进行媒体数据转发时无需建立中间媒体传输通道。
下面对应用于实时通信系统中的实时通信方法进行具体的举例说明。
本申请实施例提供了一种实时通信方法,应用于第一信令服务器,图3为本申请实施例中实时通信方法的第一流程示意图,如图3所示,该具体可以包括:
步骤301:接收第一用户设备的第一信令信息;
需要说明的是,在信令服务器在进行信令转发之前,网络侧需要依据负载均衡原则为用户设备选择合适的信令服务器,避免负载不均衡导致的网络堵塞。
也就是说,在执行信令转发之前,该方法还包括:接收网络设备的指示信息;根据指示信息确定要服务的用户设备。
示例性的,该方法还包括:第一用户设备暴露统一的域名和http/websocket api,网络设备根据域名选择第一信令服务器,第一用户设备与第一信令服务器建立websocket长连接信令传输通道。
本申请实施例中,第一信令服务器和第二信令服务器均可称为信令服务器,所执行的操作完全相同,即第一信令服务器也可称为第二信令服务器,只是为了将同一类型的服务器彼此区分开。
步骤302:发送所述第一信令信息给第二用户设备;
具体地,第一信令服务器确定第二用户设备为服务对象时,直接发送第一信令信息给第二用户设备;不为服务对象时,第一信令服务器可以向外广播第一信令信息,订阅了第一信令信息的第二信令服务器变接收第一信令信息,并转发给服务的第二用户设备。
在一些实施例中,该方法具体包括:发送所述第一信令信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一信令信息给所述第二用户设备。
也就是说,第一用户设备在发送第一信令信息给第二用户设备时,中间需要两个信令服务器进行转发。
在一些实施例中,该方法还包括:接收所述第二用户设备的第二信令信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;发送所述第二信令信息给所述第一用户设备。
这里,第二用户设备向第一用户设备发送第二信令信息可以通过一个信令服务器进行转发,也可以通过两个服务器进行转发。
步骤303:为所述第一用户设备选择第一媒体服务器;
在一些实施例中,该方法具体包括:根据最优路径选择策略为所述第一用户设备选择第一媒体服务器。
示例性的,最优路径选择策略可以根据用户设备所在位置,对该位置范围内媒体服务器进行度量,选择度量值最小的媒体服务器。
步骤304:获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
在一些实施例中,所述方法还包括:发送所述第一标识信息给第二用户设备,以使得所述第二用户设备根据所述第一标识信息与所述第一媒体服务器建立第二数据传输通道,用于传输所述媒体数据;
或者,发送所述第一标识信息给所述第二用户设备连接的第二媒体服务器,以使得所述第二媒体服务器根据所述第一标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据;
其中,所述第二用户设备与所述第二媒体服务器之间建立第二数据传输通道,用于传输所述媒体数据。
需要说明的是,第一用户设备和第二用户设备选择相同的媒体服务器时,第二用户设备也需要获取第一标识信息,与第一媒体服务器建立第二数据传输通道。第一用户设备和第二用户设备选择不相同的媒体服务器时,第二用户设备需要获取第二媒体服务器的第二标识信息,与第二媒体服务器建立第二数据传输通道,第二媒体服务器需要获取第一标识信息,与第一媒体服务器建立中间数据传输通道。
也就是说,第一信令服务器在得到第一标识信息后,需要转发给第二用户设备,或者第二用户设备所连接的第二媒体服务器,使得第二用户设备或第二媒体服务器能够根据第一标识信息确定第一媒体服务器,并建立数据传输通道。
这里,媒体服务器的标识信息用于唯一标识媒体服务器集群中的一个媒体服务器。示例性的,标识信息可以为媒体服务器的地址信息、编号信息等。
在一些实施例中,所述方法还包括:发送所述第一标识信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一标识信息给所述第二用户设备,或者发送所述第一标识信息给所述第二媒体服务器。
也就是说,当第二用户设备不是第一信令服务器的服务对象时,第一信令信息还需要第二信令服务器转发到第二用户设备,或者转发到第二媒体服务器。
图4为本申请实施例中实时通信系统的第二构架示意图,如图4所示,第一用户设备与第一信令服务器之间建立第一信令传输通道,与第一媒体服务器之间建立第一数据传输通道,第二用户设备与第二信令服务器之间建立第二信令传输通道,与第二媒体服务器之间建立第二数据传输通道,第一信令服务器和第二信令服务器之间建立中间信令传输通道,第一媒体服务器和第二媒体服务器之间建立中间数据传输通道。
若第一用户设备和第二用户设备选择相同信令服务器,则图4中第一信令服务器和第二信令服务器合二为一,无中间信令传输通道。若第一用户设备和第二用户设备选择相同媒体服务器,则图4中第一媒体服务器和第二媒体服务器合二为一,无中间数据传输通道。
示例性的,用户设备与信令服务器可以设计成通过传输控制协议(TransmissionControl Protocol,TCP)交互,保证信令交互安全性,且不会影响媒体数据的传输性能。
信令服务之间通过消息队列(Message Queue,MQ)进行用户信息和/或标识信息的交互。
信令服务器与媒体服务器之间通过谷歌远程过程调度(Google RemoteProcedure Call,grpc)进行信令控制。
用户设备与媒体服务器可以设计成通过用户数据报协议(User DatagramProtocol,UDP)传输音视频媒体数据。
在一些实施例中,所述方法还包括:获取所述第二用户设备连接的第二媒体服务器的第二标识信息;
发送所述第二标识信息给所述第一媒体服务器,以使得所述第一媒体服务器根据所述第二标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
在一些实施例中,所述获取所述第二用户设备连接的第二媒体服务器的第二标识信息,包括:接收第二信令服务器发送的所述第二媒体服务器的第二标识信息。
需要说明的是,若第一用户设备和第二用户设备距离较远,则需要设置第二媒体服务器与第一媒体服务器共同转发媒体数据,避免第一媒体服务器访问量过大的问题。即在确定了第二标识信息之后,还可以将第二标识信息发送给第一媒体服务器,第一媒体服务器根据第二标识信息与第二媒体服务器建立中间数据传输通道。
需要说明的是,第一标识信息可以在第一信令信息之前发送,也可以在第一信令信息之后发送。即步骤303和步骤304还可以在步骤301或者步骤302之前执行。当信令服务器在确定服务的用户设备之后,可以直接为该用户设备选择对应的第一媒体服务器,并发送第一标识信息给第一用户设备。
接收所述第一用户设备的第一用户信息;
在一些实施例中,该方法还包括发送所述第一用户信息给所述第二用户设备,或者,发送所述第一用户信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器转发所述第一用户信息给所述第二用户设备。
在一些实施例中,该方法还包括:接收所述第二用户设备的第二用户信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;发送所述第二用户信息给所述第一用户设备。
也就是说,信令服务器除了转发用户设备的信令信息之外,还会转发用户信息。这里,用户信息包括以下至少一项:账户信息、角色信息。
可以理解的是,用户设备之间在进行实时通信时,除了媒体数据之外,其他数据均可以通过信令服务器来转发。
采用上述技术方案,通过将媒体服务和信令服务解耦和,利用信令服务器实现第一用户设备与第二用户设备之间的信令交互,利用媒体服务器实现二者之间的媒体数据交互,实现服务和流量分散,满足大流量产品需求,将实时通信系统设计成分布式构架,组成一种可用性高且扩展性强的实时通信构架,从而提高实时通信效率。
本申请实施例还提供了另一种实时通信方法,应用于第一媒体服务器,如图5所示,该方法具体包括:
步骤501:接收第一用户设备的第一连接请求;
需要说明的是,第一媒体服务器用于向第二用户设备转发第一媒体数据,第二媒体服务器用于向第一用户设备转发第二媒体数据。信令服务器可以为第一用户设备和第二用户设备选择相同的媒体服务器,即第一媒体服务器和第二媒体服务器为同一个媒体服务器,在进行媒体数据转发时无需建立中间媒体传输通道。
需要说明的是,第一用户设备发送第一信令信息给第一信令服务器,第一信令服务器为第一用户设备选择第一媒体服务器,获取第一媒体服务器的第一标识信息,发送第一标识信息给第一用户设备。
具体地,第一用户设备基于第一标识信息,发送第一连接请求给第一媒体服务器,建立第一数据传输通道;其中,第一标识信息是第一信令服务器为所述第一用户设备选择的第一媒体服务器的标识信息。
这里,媒体服务器的标识信息用于唯一标识媒体服务器集群中的一个媒体服务器。示例性的,标识信息可以为媒体服务器的地址信息、编号信息等。
需要说明的是,第一用户设备和第二用户设备选择相同的媒体服务器时,第二用户设备也需要获取第一标识信息,与第一媒体服务器建立第二数据传输通道。第一用户设备和第二用户设备选择不相同的媒体服务器时,第二用户设备需要获取第二媒体服务器的第二标识信息,与第二媒体服务器建立第二数据传输通道,第二媒体服务器需要获取第一标识信息,与第一媒体服务器建立中间数据传输通道。
本申请实施例中,第一媒体服务器和第二媒体服务器均可称为媒体服务器,所执行的操作完全相同,即第一媒体服务器也可称为第二媒体服务器,只是为了将同一类型的服务器彼此区分开。
步骤502:根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
在一些实施例中,该方法还包括:获取第二用户设备连接的第二媒体服务器的第二标识信息;根据所述第二标识信息与所述第二媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
在一些实施例中,所述获取第二用户设备连接的第二媒体服务器的第二标识信息,包括:接收所述第一用户设备发送的所述第二标识信息;或者,接收所述第一用户设备连接的第一信令服务器发送的所述第二标识信息;其中,第一信令服务器用于实现第一用户设备和第二用户设备之间的信令交互。
需要说明的是,若第一用户设备和第二用户设备距离较远,则需要设置第二媒体服务器与第一媒体服务器共同转发媒体数据,避免第一媒体服务器访问量过大的问题。即在确定了第二标识信息之后,还可以将第二标识信息发送给第一媒体服务器,第一媒体服务器根据第二标识信息与第二媒体服务器建立中间数据传输通道。
和/或,在确定第一标识信息之后,将第一标识信息通过一个或两个信令服务器发送给第二媒体服务器,第二媒体服务器根据第一标识信息与第一媒体服务器建立中间数据传输通道。
采用上述技术方案,通过将媒体服务和信令服务解耦和,利用信令服务器实现第一用户设备与第二用户设备之间的信令交互,利用媒体服务器实现二者之间的媒体数据交互,实现服务和流量分散,满足大流量产品需求,将实时通信系统设计成分布式构架,组成一种可用性高且扩展性强的实时通信构架,从而提高实时通信效率。
基于上述实施例对本申请实时通信方法进行进一步举例说明,图6为本申请实施例中实时通信方法的第三流程示意图,如图6所示,该方法包括:
假设现在有三个用户A、B和C,A用户(本申请实施例中“用户”相当于“用户设备”)作为音视频流的生产方(比如主播、讲师、主持人等),用户B和用户C作为观看A的音视频方,
首先A通过信令服务的域名跟某台信令服务(Signaling Server,SgS)建立websocket长连接信令传输通道(第一信令传输通道)。
那么本方案的整体流程可如下描述:
1、用户A向SgS1(即第一信令服务器)发送加入房间(join room)的信令;2、SgS1为用户A选择MdS1;这里,SgS1接受到A发送的join room信令后,通过SgS里的媒体服务调度模块选择一台最优路径的媒体服务器(Media Server,MdS);将MdS1地址返回给用户A,3、用户A收到MdS1地址后就会与MdS1建立第一数据传输通道(也可称为“推流通道”),后续用户A采集的音视频流数据都会通过这个通道传输到这个MdS上供其他端用户拉流消费;
4、用户B想观看A的音视频,就要先发送join room信令到SgS2(即第二信令服务器),也可以发送到SgS1,5、SgS2也会调度选择一台MdS2,将MdS2的地址返回给用户B,6、用户B收到MdS2地址后就会与MdS2建立第二数据传输通道(也可称为“拉流消费通道”),7、同时SgS2会将B要求加入房间的消息通过MQ广播发布到该房间所有用户所在的其他SgS上,告诉其他用户B的账户信息和角色信息(音视频流的生产者还是消费者),8、A所在SgS1就知道了有用户B进入房间了,且是消费者,A作为生产者,就需要在A所在的SgS1上通过grpc连接到A所在的MdS1,告诉A的MdS1有用户B的MdS2需要消费,A的MdS2接受到该消息后,就会通过grpc与B的MdS2建立用户数据报协议(User Datagram Protocol,UDP)的中间数据传输通道(也可称为“级联推拉流通道”)。
同理,用户C加入,需要完成步骤4至步骤7一系列信令和媒体交互,建立传输通道;
至此,A、B、C之间的信令和媒体通道都已建立,A作为推流方不断将采集到的音视频流传输到A的MdS1,然后传输给B和C的MdS2,B和C作为拉流方就可以不断的从B、C的MdS2将音视频流拉到各自的本地进行播放观看,这便是一次完整的RTC框架的推拉流流程。
这里,在视频直播中,加入房间(join room)之前还可以包括创建房间,无论是消费者还是生产者,在加入房间后,表明订阅了该房间中所有用户公开的用户信息,可以通过信令服务器以消息队列的形式向其他信令服务器实时同步用户信息。
本申请实时通信系统,重新设计RTC平台服务架构,实现了信令和媒体服务的完全解耦分离,且完全无中心节点瓶颈,无单点故障,通过负载均衡可实现多用户的流量分散。信令服务和媒体服务都设计成分布式架构,完全支持无限扩展,高可用,并具有优越的高性能。
为实现本申请实施例的方法,基于同一发明构思本申请实施例还提供了一种实时通信装置,应用于第一信令服务器,如图7所示,该装置包括:
通信单元701,用于接收第一用户设备的第一信令信息;发送所述第一信令信息给第二用户设备;
处理单元702,用于为所述第一用户设备选择第一媒体服务器;
所述通信单元701,还用于获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
在一些实施例中,通信单元701,具体用于发送所述第一信令信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一信令信息给所述第二用户设备。
在一些实施例中,通信单元701,具体用于接收所述第二用户设备的第二信令信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;发送所述第二信令信息给所述第一用户设备。
在一些实施例中,通信单元701,还用于发送所述第一标识信息给第二用户设备,以使得所述第二用户设备根据所述第一标识信息与所述第一媒体服务器建立第二数据传输通道,用于传输所述媒体数据;
或者,发送所述第一标识信息给所述第二用户设备连接的第二媒体服务器,以使得所述第二媒体服务器根据所述第一标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据;
其中,所述第二用户设备与所述第二媒体服务器之间建立第二数据传输通道,用于传输所述媒体数据。
在一些实施例中,通信单元701,具体用于发送所述第一标识信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一标识信息给所述第二用户设备,或者发送所述第一标识信息给所述第二媒体服务器。
在一些实施例中,通信单元701,还用于获取所述第二用户设备连接的第二媒体服务器的第二标识信息;发送所述第二标识信息给所述第一媒体服务器,以使得所述第一媒体服务器根据所述第二标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
在一些实施例中,通信单元701,具体用于接收第二信令服务器发送的所述第二媒体服务器的第二标识信息。
在一些实施例中,通信单元701,还用于接收所述第一用户设备的第一用户信息;发送所述第一用户信息给所述第二用户设备,或者,发送所述第一用户信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器转发所述第一用户信息给所述第二用户设备。
在一些实施例中,通信单元701,还用于接收所述第二用户设备的第二用户信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;发送所述第二用户信息给所述第一用户设备。
为实现本申请实施例的方法,基于同一发明构思本申请实施例还提供了另一种实时通信装置,应用于第一媒体服务器,如图8所示,该装置包括:
通信单元801,用于接收第一用户设备的第一连接请求;
处理单元802,用于根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
在一些实施例中,通信单元801,还用于获取第二用户设备连接的第二媒体服务器的第二标识信息;
处理单元802,还用于根据所述第二标识信息与所述第二媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
在一些实施例中,通信单元801,具体用于接收所述第一用户设备发送的所述第二标识信息;或者,接收所述第一用户设备连接的第一信令服务器发送的所述第二标识信息。
基于上述实时通信装置中各单元的硬件实现,本申请实施例还提供了一种信令服务器,如图9所示,该信令服务器包括:处理器901和配置为存储能够在处理器上运行的计算机程序的存储器902;
其中,处理器901配置为运行计算机程序时,执行前述应用于第一信令服务器实施例中的方法步骤。
当然,实际应用时,如图9所示,该信令服务器中的各个组件通过总线系统903耦合在一起。可理解,总线系统903用于实现这些组件之间的连接通信。总线系统903除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统903。
基于上述实时通信装置中各单元的硬件实现,本申请实施例还提供了一种媒体服务器,如图10所示,该信令服务器包括:处理器1001和配置为存储能够在处理器上运行的计算机程序的存储器1002;
其中,处理器1001配置为运行计算机程序时,执行前述应用于第一媒体服务器实施例中的方法步骤。
当然,实际应用时,如图10所示,该信令服务器中的各个组件通过总线系统1003耦合在一起。可理解,总线系统1003用于实现这些组件之间的连接通信。总线系统1003除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统1003。
在实际应用中,上述处理器可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理装置(DSPD,Digital Signal ProcessingDevice)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述存储器可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatile memory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器提供指令和数据。
本申请实施例还提供了一种实时通信系统,如图11所示,该系统包括:信令服务器集群111和媒体服务器集群112,所述信令服务器集群111中包括至少一个上述实施例中的信令服务器,所述媒体服务器集群中包括至少一个上述实施例中的媒体服务器;;
所述信令服务器用于实现用户设备之间的信令交互,所述媒体服务器用于实现用户设备之间的媒体数据交互。
实时通信系统中,信令服务器和媒体服务器设计成分布式构架,实现灵活动态扩展,具备高可用高并发的能力。其中,信令服务器具备信令转发功能,以及媒体服务器的调度功能,媒体服务器具备媒体数据转发功能。通过将媒体服务和信令服务解耦和,实现流量分散,满足大流量产品的需求。
在一些实施例中,媒体服务器集群包括第一媒体服务器和第二媒体服务器,第一用户设备连接第一媒体服务器,第二用户设备连接第二媒体服务器,第一媒体服务器用于接收所述第一用户设备生成的媒体数据,并转发所述媒体数据给第二用户设备;或者,所述第一媒体服务器用于接收所述第二用户设备生成的媒体数据,并转发所述媒体数据给第一用户设备。
第一媒体服务器和第二媒体服务器为同一个媒体服务器,在进行信令转发时无需建立中间媒体传输通道。
在一些实施例中,信令服务器集群包括第一信令服务器和第二信令服务器,第一用户设备连接第一信令服务器,第二用户设备连接第二信令服务器,第一信令服务器用于接收所述第一用户设备的第一信令信息,并转发第一信令信息给第二用户设备;或者,所述第一媒体服务器用于接收所述第二用户设备的第二信令信息,并转发第二信令信息给第一用户设备。
第一信令服务器和第二信令服务器为同一个信令服务器,在进行信令转发时无需建立中间信令传输通道。
应当理解,本申请实施例中,第一信令服务器和第二信令服务器均可称为信令服务器,所执行的操作完全相同,即第一信令服务器也可称为第二信令服务器,只是为了将同一类型的服务器彼此区分开。
同样,第一媒体服务器和第二媒体服务器均可称为媒体服务器,所执行的操作完全相同,即第一媒体服务器也可称为第二媒体服务器,只是为了将同一类型的服务器彼此区分开。
在一些实施例中,第一信令服务器还用于将所述第一用户设备对应的第一用户信息同步给所述第二信令服务器,以使得所述第二信令服务器对应的第二用户设备获取所述第一用户信息;
所述第二信令服务器还用于将所述第二用户设备对应的第二用户信息同步给所述第一信令服务器,以使得所述第一用户设备获取所述第二用户信息。
这里,第一用户设备作为生产者时,可以包括一个或多个消费者,即包括至少一个第二用户设备,与第一用户设备建立实时通信连接。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,计算机程序可由信令服务器或媒体服务器的处理器执行,以完成前述方法的步骤。
应当理解,在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本申请中表述“具有”、“可以具有”、“包括”和“包含”、或者“可以包括”和“可以包含”在本文中可以用于指示存在对应的特征(例如,诸如数值、功能、操作或组件等元素),但不排除附加特征的存在。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,不必用于描述特定的顺序或先后次序。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (18)

1.一种实时通信方法,应用于第一信令服务器,其特征在于,所述方法包括:
接收第一用户设备的第一信令信息;
发送所述第一信令信息给第二用户设备;
为所述第一用户设备选择第一媒体服务器;
获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
2.根据权利要求1所述的方法,其特征在于,所述发送所述第一信令信息给第二用户设备,包括:
发送所述第一信令信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一信令信息给所述第二用户设备。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二用户设备的第二信令信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;
发送所述第二信令信息给所述第一用户设备。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
发送所述第一标识信息给第二用户设备,以使得所述第二用户设备根据所述第一标识信息与所述第一媒体服务器建立第二数据传输通道,用于传输所述媒体数据;
或者,发送所述第一标识信息给所述第二用户设备连接的第二媒体服务器,以使得所述第二媒体服务器根据所述第一标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据;
其中,所述第二用户设备与所述第二媒体服务器之间建立第二数据传输通道,用于传输所述媒体数据。
5.根据权利要求4所述的方法,其特征在于,所述方法包括:
发送所述第一标识信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器发送所述第一标识信息给所述第二用户设备,或者发送所述第一标识信息给所述第二媒体服务器。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第二用户设备连接的第二媒体服务器的第二标识信息;
发送所述第二标识信息给所述第一媒体服务器,以使得所述第一媒体服务器根据所述第二标识信息与所述第一媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
7.根据权利要求6所述的方法,其特征在于,所述获取所述第二用户设备连接的第二媒体服务器的第二标识信息,包括:
接收第二信令服务器发送的所述第二媒体服务器的第二标识信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一用户设备的第一用户信息;
发送所述第一用户信息给所述第二用户设备,或者,发送所述第一用户信息给所述第二用户设备连接的第二信令服务器,以使得所述第二信令服务器转发所述第一用户信息给所述第二用户设备。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述第二用户设备的第二用户信息,或者接收所述第二用户设备连接的第二信令服务器发送的第二用户信息;
发送所述第二用户信息给所述第一用户设备。
10.一种实时通信方法,应用于第一媒体服务器,其特征在于,所述方法包括:
接收第一用户设备的第一连接请求;
根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取第二用户设备连接的第二媒体服务器的第二标识信息;
根据所述第二标识信息与所述第二媒体服务器建立中间数据传输通道,用于传输所述媒体数据。
12.根据权利要求11所述的方法,其特征在于,所述获取第二用户设备连接的第二媒体服务器的第二标识信息,包括:
接收所述第一用户设备发送的所述第二标识信息;
或者,接收所述第一用户设备连接的第一信令服务器发送的所述第二标识信息。
13.一种实时通信装置,应用于第一信令服务器,其特征在于,所述装置包括:
通信单元,用于接收第一用户设备的第一信令信息;发送所述第一信令信息给第二用户设备;
处理单元,用于为所述第一用户设备选择第一媒体服务器;
所述通信单元,还用于获取所述第一媒体服务器的第一标识信息,并发送给所述第一用户设备,以使得所述第一用户设备根据所述第一标识信息与所述第一媒体服务器建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
14.一种实时通信装置,应用于第一媒体服务器,其特征在于,所述装置包括:
通信单元,用于接收第一用户设备的第一连接请求;
处理单元,用于根据所述第一连接请求与所述第一用户设备建立第一数据传输通道,用于传输所述第一用户设备与至少一个第二用户设备之间传输的媒体数据。
15.一种信令服务器,其特征在于,所述信令服务器包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至9任一项所述方法的步骤。
16.一种媒体服务器,其特征在于,所述媒体服务器包括:其特征在于,所述终端设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器配置为运行所述计算机程序时,执行权利要求10至12任一项所述方法的步骤。
17.一种实时通信系统,其特征在于,所述系统包括:信令服务器集群和媒体服务器集群,所述信令服务器集群中包括权利要求15所述的至少一个信令服务器,所述媒体服务器集群中包括权利要求16所述的至少一个媒体服务器;
所述信令服务器用于实现用户设备之间的信令交互,所述媒体服务器用于实现用户设备之间的媒体数据交互。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12任一项所述的方法的步骤。
CN202110097977.XA 2021-01-25 2021-01-25 一种实时通信方法、装置、服务器、系统及存储介质 Pending CN112788053A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110097977.XA CN112788053A (zh) 2021-01-25 2021-01-25 一种实时通信方法、装置、服务器、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110097977.XA CN112788053A (zh) 2021-01-25 2021-01-25 一种实时通信方法、装置、服务器、系统及存储介质

Publications (1)

Publication Number Publication Date
CN112788053A true CN112788053A (zh) 2021-05-11

Family

ID=75758965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110097977.XA Pending CN112788053A (zh) 2021-01-25 2021-01-25 一种实时通信方法、装置、服务器、系统及存储介质

Country Status (1)

Country Link
CN (1) CN112788053A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640893A (zh) * 2022-03-10 2022-06-17 京东科技信息技术有限公司 实时音视频通信系统的服务端对接方法以及装置
CN114710471A (zh) * 2022-03-21 2022-07-05 京东科技信息技术有限公司 基于网络的客服语音通信方法、装置、电子设备及介质
CN116032991A (zh) * 2022-12-27 2023-04-28 中国联合网络通信集团有限公司 设备控制方法、装置、服务器及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338348A (zh) * 2013-07-17 2013-10-02 天脉聚源(北京)传媒科技有限公司 一种网络音视频会议的实现方法、系统和服务器
CN104410509A (zh) * 2014-10-16 2015-03-11 宁波菊风系统软件有限公司 一种基于质量评价的多路径数据传输方法
CN106713819A (zh) * 2015-07-24 2017-05-24 三亚中兴软件有限责任公司 用于视频会议的数据传输方法、装置及系统
CN107566671A (zh) * 2017-10-12 2018-01-09 携程旅游信息技术(上海)有限公司 网络语音通信方法及其系统、存储介质、电子设备
CN109889545A (zh) * 2019-03-27 2019-06-14 北京云中融信网络科技有限公司 数据通信方法和装置
CN110460801A (zh) * 2019-09-05 2019-11-15 北京云中融信网络科技有限公司 一种媒体服务器之间数据转发的方法及装置
CN111049833A (zh) * 2019-12-13 2020-04-21 北京东土科技股份有限公司 端口复用控制方法、装置、服务器及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338348A (zh) * 2013-07-17 2013-10-02 天脉聚源(北京)传媒科技有限公司 一种网络音视频会议的实现方法、系统和服务器
CN104410509A (zh) * 2014-10-16 2015-03-11 宁波菊风系统软件有限公司 一种基于质量评价的多路径数据传输方法
CN106713819A (zh) * 2015-07-24 2017-05-24 三亚中兴软件有限责任公司 用于视频会议的数据传输方法、装置及系统
CN107566671A (zh) * 2017-10-12 2018-01-09 携程旅游信息技术(上海)有限公司 网络语音通信方法及其系统、存储介质、电子设备
CN109889545A (zh) * 2019-03-27 2019-06-14 北京云中融信网络科技有限公司 数据通信方法和装置
CN110460801A (zh) * 2019-09-05 2019-11-15 北京云中融信网络科技有限公司 一种媒体服务器之间数据转发的方法及装置
CN111049833A (zh) * 2019-12-13 2020-04-21 北京东土科技股份有限公司 端口复用控制方法、装置、服务器及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640893A (zh) * 2022-03-10 2022-06-17 京东科技信息技术有限公司 实时音视频通信系统的服务端对接方法以及装置
CN114710471A (zh) * 2022-03-21 2022-07-05 京东科技信息技术有限公司 基于网络的客服语音通信方法、装置、电子设备及介质
CN116032991A (zh) * 2022-12-27 2023-04-28 中国联合网络通信集团有限公司 设备控制方法、装置、服务器及存储介质

Similar Documents

Publication Publication Date Title
CN112788053A (zh) 一种实时通信方法、装置、服务器、系统及存储介质
US9621958B2 (en) Deferred, on-demand loading of user presence within a real-time collaborative service
CN109561320B (zh) 一种服务器切换方法、装置、设备及介质
CN111432158B (zh) 媒体节点的负载均衡方法及装置、存储介质、电子装置
CN113923470B (zh) 直播流处理方法及装置
US9402056B2 (en) Collaboration extension system
CN108055577A (zh) 一种直播交互方法、系统、装置及电子设备
CN110996372B (zh) 消息路由方法、装置、系统及电子设备
CN108337556B (zh) 用于播放影音文件的方法和装置
CN105323537A (zh) 使用移动平台的视频会议
US20180077205A1 (en) Potential echo detection and warning for online meeting
CN114257572B (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN113242173A (zh) 屏幕的分享方法、装置、系统和即时通讯服务器
CN115002083B (zh) 实时流媒体数据传输的方法、设备及存储介质
CN111405308B (zh) 一种发送直播音视频数据的方法和装置
WO2016095510A1 (zh) 一种路径选择方法、设备及系统
CN113271474B (zh) 一种流媒体服务器的测试方法、装置、设备和存储介质
CN115379279A (zh) 多屏联动的交互方法及装置、系统、存储介质、电子设备
CN111212253B (zh) 视频会议中的监控处理方法、装置、电子设备及存储介质
US9485458B2 (en) Data processing method and device
CN113490155A (zh) 多播广播业务的通信方法、装置、介质及电子设备
US20100033580A1 (en) Access to video streams on mobile communication devices
CN112291573A (zh) 直播流推送方法、装置和电子设备
CN112019791A (zh) 基于教育考试的多方音视频通话方法及系统
CN112055365B (zh) 终端组网的方法及装置、终端、可读存储介质

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