本发明涉及数据传输,尤其涉及一种浏览器实时通信方法、系统、设备及存储介质。
背景技术:
1、音视频实时通讯引擎是现代通讯技术中不可或缺的一部分,在视频会议、语音会议服务、远程教育、远程医疗、在线社交等场景中的一项基础功能框架,在音视频通讯过程中承担着核心功能角色,目前业界主要是利用网页实时通信(web real-timecommunications,webrtc)的开源方案实现实时通讯。而webrtc作为一项实时通信技术,允许网络应用或站点在不借助中间媒介的基础上,建立浏览器之间点对点的连接,实现视频流和/或音频流或其他任意数据的传输。
2、一般的,在浏览器侧主要是利用浏览器官方提供的应用程序编程接口(application programming interface,api)能力实现webrtc通信交互,而作为一种底层解决方案,webrtc常集成于浏览器内核中对用户提供一整套黑盒能力。
3、然而,伴随行业发展以及前端技术的蓬勃发展,这种黑盒能力形式已不满足行业定制化需求,尤其在对各种音视频问题进行定位调试过程中,涉及到底层的问题则无从下手。即使浏览器已发布如webtransport、webcodecs和webassembly等组件提升浏览器间数据传输的效率,却仍无法在浏览器间数据传输过程中将其进行整合使用,难以满足实时通信可控性和灵活性的需求。
技术实现思路
1、本发明提供了一种浏览器实时通信方法、系统、设备及存储介质,将浏览器发布的与通信、编解码及虚拟指令构建相关的组件功能进行整合,使得浏览器在进行实时通信时的通信方式可被定制,提升了浏览器间实时通信的可控性和灵活性。
2、第一方面,本发明实施例提供了一种浏览器实时通信方法,应用于浏览器实时通信系统的客户端中,浏览器实时通信系统包括至少两个客户端和服务端;客户端包括信令模块、编解码模块、通信模块和虚拟指令模块;其中,客户端分为主动客户端和被动客户端;在客户端为主动客户端时,方法包括:
3、信令模块在接收到编解码回调配置信息时,将编解码回调配置信息发送至编解码模块,以使编解码模块根据编解码回调配置信息进行配置,并将由编解码模块封装后的编解码回调配置信息设置到虚拟指令模块中;
4、在信令模块接收到客户端选择指令后,根据预获取的主动端支持格式信息和第一代理地址端口在通信模块,和与客户端选择指令对应的被动客户端间建立码流通道,并在编解码模块中对应建立编码器或解码器;
5、信令模块在接收到数据收发回调配置信息时,将数据收发回调配置信息发送至通信模块,以使通信模块根据数据收发回调配置信息对通信模块进行配置,并将由通信模块封装后的数据收发回调配置信息设置到虚拟指令模块中;
6、信令模块向被动客户端发送完成信令以完成主动客户端的信令配置,并在主动客户端与被动客户端间通过码流通道进行实时通信。
7、第二方面,本发明实施例还提供了另一种浏览器实时通信方法,应用于浏览器实时通信系统的客户端中,浏览器实时通信系统包括至少两个客户端和服务端;客户端包括信令模块、编解码模块、通信模块和虚拟指令模块;其中,客户端分为主动客户端和被动客户端;在客户端为被动客户端时,方法包括:
8、信令模块在接收到编解码回调配置信息时,将编解码回调配置信息发送至编解码模块,以使编解码模块根据编解码回调配置信息进行配置,并将由编解码模块封装后的编解码回调配置信息设置到虚拟指令模块中;
9、信令模块在接收到客户端选择指令后,根据客户端选择指令创建连接对象,并调用虚拟指令模块创建对等连接对象;
10、信令模块在接收到对应主动客户端发送的主动请求信令时,根据主动请求信令、预获取的被动端支持格式信息和第二代理地址端口在通信模块和主动客户端间建立码流通道,并在编解码模块中对应建立编码器或解码器;
11、信令模块在接收到数据收发回调配置信息时,将数据收发回调配置信息发送至通信模块,以使通信模块根据数据收发回调配置信息对通信模块进行配置,并将由通信模块封装后的数据收发回调配置信息设置到虚拟指令模块中;
12、信令模块在接收到主动客户端的完成信令时,向主动客户端发送完成信令反馈消息以完成被动客户端的信令配置,并在被动客户端与主动客户端间通过码流通道进行实时通信。
13、第三方面,本发明实施例提供了一种浏览器实时通信系统,包括:至少两个客户端和服务端;客户端包括信令模块、编解码模块、通信模块和虚拟指令模块;其中,客户端分为主动客户端和被动客户端;
14、各客户端的信令模块在接收到编解码回调配置信息时,将编解码回调配置信息发送至对应的编解码模块,以使编解码模块根据编解码回调配置信息进行配置,并将由编解码模块封装后的编解码回调配置信息设置到对应的虚拟指令模块中;
15、主动客户端的信令模块在接收到客户端选择指令后,根据预获取的主动端支持格式信息和第一代理地址端口创建主动请求信令,并将主动请求信令经由服务端发送至与客户端选择指令对应的被动客户端;
16、被动客户端根据接收到的主动请求信令,以及预获取的被动端支持格式信息和第二代理地址端口创建主动请求回复信令,并将主动请求回复信令经由服务端发送至主动客户端;
17、被动客户端根据主动请求信令,以及预获取的被动端支持格式信息和第二代理地址端口构建被动客户端的通信模块与第一代理地址端口和第二代理地址端口的码流通道,并在被动客户端的编解码模块中对应建立编码器或解码器;
18、主动客户端根据主动请求回复信令,以及预获取的主动端支持格式信息和第一代理地址端口构建主动客户端的通信模块和第一代理地址端口和第二代理地址端口的码流通道,并在主动客户端的编码模块中对应建立编码器或解码器;
19、各客户端的信令模块在接收到数据收发回调配置信息时,将数据收发回调配置信息发送至对应的通信模块,以使通信模块根据数据收发回调配置信息对通信模块进行配置,并将由通信模块封装后的数据收发回调配置信息设置到对应的虚拟指令模块中;
20、主动客户端的信令模块向被动客户端的信令模块发送完成信令,并接收被动客户端的完成信令反馈消息以完成主动客户端和被动客户端的信令配置,并在主动客户端与被动客户端间通过码流通道进行实时通信;
21、其中,第一代理地址端口为主动客户端用于接收码流数据的代理地址端口;第二代理地址端口为被动客户端用于接收码流数据的代理地址端口。
22、第四方面,本发明实施例还提供了一种浏览器实时通信设备,包括:
23、至少一个处理器;以及
24、与至少一个处理器通信连接的存储器;其中,
25、存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例的浏览器实时通信方法。
26、第五方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时,使得计算机处理器能够执行本发明任一实施例的浏览器实时通信方法。
27、本发明实施例提供的一种浏览器实时通信方法、系统、设备及存储介质,其中,浏览器实时通信系统包括至少两个客户端和服务端;客户端包括信令模块、编解码模块、通信模块和虚拟指令模块;其中,客户端分为主动客户端和被动客户端;在客户端为主动客户端时,信令模块在接收到编解码回调配置信息时,将编解码回调配置信息发送至编解码模块,以使编解码模块根据编解码回调配置信息进行配置,并将由编解码模块封装后的编解码回调配置信息设置到虚拟指令模块中;在信令模块接收到客户端选择指令后,根据预获取的主动端支持格式信息和第一代理地址端口在通信模块,和与客户端选择指令对应的被动客户端间建立码流通道,并在编解码模块中对应建立编码器或解码器;信令模块在接收到数据收发回调配置信息时,将数据收发回调配置信息发送至通信模块,以使通信模块根据数据收发回调配置信息对通信模块进行配置,并将由通信模块封装后的数据收发回调配置信息设置到虚拟指令模块中;信令模块向被动客户端发送完成信令以完成主动客户端的信令配置,并在主动客户端与被动客户端间通过码流通道进行实时通信。通过采用上述技术方案,基于浏览器新发布的编解码组件、通信组件和虚拟指令组件构建实时通信系统中的客户端架构,使得客户端中的编解码模块、通信模块和虚拟指令模块均可根据由信令模块接收到的回调配置信息进行白盒化的个性配置,进而在与相对端的浏览器完成码流通道构建后,可依据个性配置对所得码流数据进行自动回调和相应处理,使得浏览器在进行实时通信时的通信方式可被定制,提升了浏览器间实时通信的可控性和灵活性。同时由于在客户端中对浏览器新发布组件构成的编解码模块、通信模块和虚拟指令模块进行整合,使得客户端在进行实时通信时可充分利用对应组件的原生能力,实现了浏览器实时通信过程中的组件能力整合,提升了通信过程中码流传输的效率和安全性。
28、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。