Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js] 第2084天 WebRTC由哪几大块组成? #6053

Open
haizhilin2013 opened this issue Dec 28, 2024 · 1 comment
Open

[js] 第2084天 WebRTC由哪几大块组成? #6053

haizhilin2013 opened this issue Dec 28, 2024 · 1 comment
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第2084天 WebRTC由哪几大块组成?

3+1官网

我也要出题

@haizhilin2013 haizhilin2013 added the js JavaScript label Dec 28, 2024
@signgou
Copy link

signgou commented Dec 30, 2024

按照我的理解,api的话大概分成getUserMedia() 、RTCpeerConnection、RTCDataChannel三部分,getUserMedia用于获取用户媒体流,RTCpeerConnection用于建立两端连接,RTCDataChannel用于建立端与端之间的双向数据连接通道。
主要流程是先获取用户流媒体(数据源);然后建立网络连接,进行两端之间的协商,这里通过喜欢的信令交换两端的信息(可以利用webSocket等通信协议实现,我实现时利用的是socket.io的库,这个库综合了webSocket、http长轮询等技术解决信息交换),交换的信息包括icecandidate、SDP;icecandidate包括通信协议(TCP/UDP)、通信IP、STUN和TURN协议中描述网络信息的格式规范,以解决双方网络连接问题;SDP主要体现浏览器能力,包括不限于音视频编码格式,带宽,流控策略等,用于找出两端兼容的格式进行通话;在以上协商成功后就建立了两端连接,可以进行实时通话,之后可以根据需求,可以在建立的连接上创建数据通道进行数据交换。补充:开始协商的时机,是通过监听事件来决定的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests

2 participants