RTCPilot的信令流程

大家好,今天介绍:RTCPilot的信令流程

RTC Pilot是一个基于C++17开发的WebRTC SFU开源,支持跨平台,支持windows,linux,macos,二次开发效率高;并且是开源中唯一全面支持WebRTC级联的开源服务。

这个系列的内容。

•如何部署和使用一个简单的视频会议

•如何部署一个分布式多服务级联的视频会议

•介绍RTCPilot的信令流程

•介绍RTCPilot级联的信令流程

•RTCPilot实现会议实时语音转文字(RTCPilotMCU)

上一期我们介绍RTC pilot如何搭建一个RTC集群,提供分布式的视频会议系统。

今天我们介绍RTC pilot的信令流程,方便开发者做二次开发。

视频地址:

如何配置RTC集群

信令基于websocket,信令类型有两类:

•Request消息

有发送和返回消息Response,消息是双向的

•Notify消息

仅发送,没有回复消息,消息是单向的

信令流程如图,有三个角色:两个客户端client A和client B;一个RTC pilot SFU,也就是WebRTC服务端。

信令流程如下:

1.Join Request: client A在web socket连接成功后,发送join request消息。因为房间内没有其他用户,返回用户信息为空

2.Push Request: client A在join后,发送push request消息,将自己的WebRTC peer connection的SDP发送给SFU;SFU收到后,通过response消息返回自己支持的SDP信息。Client A收到后,就可以开始建立WebRTC通道和开始推流

3.client B开始web socket连接SFU,并发送join request消息,因为房间里面已经有了client A,client B将收到带有client A用户信息和流信息的response消息。

4.SFU收到client B的join消息后,会向整个房间广播client B的用户信息,这里会向client A发送new User notify消息

5.Client B因为通过join的response得到Client A的推流信息,所以发送pull request消息,进行拉流

6.Client B拉流成功后,同样可以进行推流,发送push request开始推流;

7.SFU收到Client B的push request后,将其流信息在房间内广播,这里向client A发送new pusher notify消息

8.Client A收到new pusher notify消息后,得到client B的流信息,就可以发送pull request进行拉流操作。

信令具体的json内容:

具体的信令json内容,在开源markdown文档中。websocket信令设计文档地址:

复制代码
https://github.com/runner365/RTCPilot/blob/master/ws_design.md

国内镜像

复制代码
https://gitee.com/xiaoq_bj/rtcpilot/blob/master/ws_design.md

关注音视频小话,关注抖音号,视频号,带来更多音视频技术

相关推荐
Bigger4 天前
我写了一个AI图像视频生成工具,免费API+本地部署,分享给大家
人工智能·图像识别·音视频开发
换个昵称都难12 天前
webrtc peerconnection_server 模块介绍
运维·服务器·webrtc
EasyGBS12 天前
延迟直降90%!国标GB28181视频平台EasyGBS支持WebRTC WHIP推流设备接入,让万物互联更简单
音视频·webrtc
换个昵称都难13 天前
webrtc RtpRtcp模块化测试-MockRtpRtcp
webrtc
ltlovezh13 天前
ROI 编码学习指南:Android 与 FFmpeg 的真实实现边界
android·ffmpeg·音视频开发
如意IT13 天前
指纹浏览器检测之BrowserScan的webrtc指纹检测和反检测
自动化·webrtc·chromium·浏览器开发
换个昵称都难13 天前
webrtc TURN 主要源码介绍
webrtc
换个昵称都难13 天前
webrtc RTC_P2P源码解析
asp.net·webrtc·p2p
换个昵称都难13 天前
webrtc StunServer源码介绍
webrtc
iOStanhaitao14 天前
23.视频播放器项目实战-音视频播放
音视频开发