WebRTC信令、连接与排错 · 信令、SDP与ICE连接建立至ICE排错、多人拓扑与带宽
WebRTC信令、连接与排错
信令、SDP与ICE连接建立
前置:理解 Promise、浏览器事件、信令与数据通道的区别;准备支持 RTCPeerConnection 的浏览器,本例不配置 STUN/TURN。教学范围为W3C WebRTC Recommendation;浏览器API;RFC8835传输。核对日期2026-10-17。示例未执行,本轮没有安装依赖、生成协议代码、启动服务或浏览器预览。完整文件与输入见手工信令单页示例与会话顺序练习;推演结论只适用于写明的模型。
信令与媒体为何分开
信令与媒体为何分开:应用负责把会话描述和候选传给对端,WebRTC协商并建立实际传输,规范不规定必须使用WebSocket信令。信令连接成功不证明媒体已通;排查时分别观察信令状态、ICE连接和媒体轨道。
SDP描述什么能力
SDP描述什么能力包括媒体种类、编解码、方向以及建立安全传输所需信息。它是会话描述,不是音视频内容本身。offer/answer设置到正确端的local与remote后才完成相应状态转移,不能把同一描述随意同时当本地和远端。
ICE与STUN及TURN
ICE与STUN及TURN分工不同:ICE选择可连通候选对,STUN帮助发现地址和检查连通性,TURN提供中继路径。STUN不是通用媒体转发器,使用中继也不是必然失败;策略、NAT与防火墙共同影响最终路径。
信令通路与实际数据通路
下面是逻辑关系:应用信令传递描述与候选,ICE检查并选择可用候选对;实际数据可能直达,也可能经TURN中继。STUN返回地址信息并参与检查,不是媒体存储或通用转发服务。图中的两条数据路径是可能选项,不表示同一会话必须同时使用两条。
查看图表代码
来源与适用边界
- 英文官方、作者或规范原文:本专题机制依据;按上述固定版本族阅读。
- 中文官方或作者资料:用于术语和讲解交叉核对,冲突以原始规范为准。
- RFC8835传输规范:ICE与传输角色;本例没有媒体采集或TURN部署。
协商状态、DataChannel与媒体安全
协商状态与碰撞
协商状态与碰撞发生在双方同时创建offer时,生产应用需采用明确的含回滚的冲突处理或完美协商模式。稳定状态不表示ICE一定连接成功;本例固定A发起、B应答并等待完整候选收集,故意限制角色以便先理解状态顺序。
DataChannel可靠性选择
DataChannel可靠性选择需按消息时效决定有序交付与重传参数。聊天记录与实时位置可能选择不同策略;消息发送受bufferedAmount等应用缓冲约束,不能把可靠通道当无限队列。连接关闭后的send会失败,需明确重连和业务去重。
媒体权限与传输安全
媒体权限与传输安全分别约束采集和传输。getUserMedia通常需要安全上下文与用户授权,DataChannel不需要采集摄像头。传输加密不替代信令身份与房间授权,否则把会话信息交给错误对端仍可能连接到错误对象。
固定发起方下的协商顺序
本课固定A发起,B应答,避免同时offer的碰撞。A设置本地offer后等待远端answer,B设置远端offer后生成并设置本地answer;回到stable只说明信令状态稳定,DataChannel仍需等open。状态含义依据W3C WebRTC规范,图不包含回滚和重新协商分支。
查看图表代码
来源与适用边界
- 英文官方、作者或规范原文:本专题机制依据;按上述固定版本族阅读。
- 中文官方或作者资料:用于术语和讲解交叉核对,冲突以原始规范为准。
- RFC8835传输规范:ICE与传输角色;本例没有媒体采集或TURN部署。
ICE排错、多人拓扑与带宽
ICE失败如何定位
ICE失败如何定位先检查是否有候选对,再区分连通检查失败与通道未协商。公网受限网络可能需要TURN中继,不能靠把STUN端口当转发端口修复;日志应避免泄露长期凭证和完整私网地址,调试材料按必要范围保存。
多人拓扑与带宽
多人拓扑与带宽在全网状下每人向其余参与者发送,连接数随人数平方增长。SFU转发选择的媒体流减轻上行却引入服务器成本、拥塞控制与隐私边界;MCU混流增加处理成本。不能从两人DataChannel示例直接宣称多人音视频生产可用。
WebRTC规范与历史配置
WebRTC规范与历史配置以W3C接口与RFC8835传输为依据,中文MDN用于API术语对照。旧Coturn部署文保留TURN中继的历史网络和配置案例,不复制其真实地址、证书路径或长期凭证为新默认值;本课没有安装中继或访问媒体设备。
连接失败按阶段排查
先判断描述是否按会话和角色正确交换,再检查候选是否完整送达、候选对能否连通,最后检查DataChannel是否协商并打开。出现relay候选只说明获得中继候选,仍需验证选中路径与实际收发。多人全网状中,n人共有n乘以n减一再除以2条两两连接,每人向其他n减一人发送,不能沿用两人测试的带宽结论。
查看图表代码
来源与适用边界
- 英文官方、作者或规范原文:本专题机制依据;按上述固定版本族阅读。
- 中文官方或作者资料:用于术语和讲解交叉核对,冲突以原始规范为准。
- 相关既有参考:原URL与专业范围保留;历史案例不能自动代表当前实现。
- RFC8835传输规范:ICE与传输角色;本例没有媒体采集或TURN部署。
继续阅读
- 协商与数据应用
- 信令与传输机制
- 信令与传输机制