跳到主要内容

信令与NAT穿透

WebRTC 标准不规定信令协议。这一节回答:信令该怎么设计、ICE 怎么工作、TURN 怎么部署、Perfect Negotiation 怎么写。

阅读顺序(计划)

顺序文件解决的问题
1信令协议设计.md房间模型、消息类型、Offer/Answer 状态机
2Perfect-Negotiation模式.mdglare 处理、polite/impolite 角色
3ICE全流程.md候选类型、Trickle、连通性检查、ICE Restart
4coturn部署实战.md配置、短期凭据、TLS、TCP 兜底
5企业网与移动网穿透.md对称 NAT、IPv6 双栈、4G/Wi-Fi 切换

本目录详细内容尚在补全中。在补完前,先看 02-浏览器三大API/RTCPeerConnection.md 的 Perfect Negotiation 模板。

信令的最小职责

职责必做备注
加入/离开房间房间是逻辑分组
转发 SDP(offer/answer)不解析内容,直接转
转发 ICE 候选高频,注意限流
鉴权JWT / 短期 token
断线重连客户端要保留 sequence
状态广播可选谁在房间、谁举手
持久化可选消息历史看业务

推荐选型

规模协议推荐实现
1v1 / DemoWebSocket (raw)ws(Node)/ FastAPI WebSocket
多人会议Socket.IO / WebSocketLiveKit 自带 / mediasoup 用 protoo
大规模Socket.IO + Redis 适配器 / 自研横向扩展
跨平台MQTT与 IoT 共栈

反模式

反模式后果
信令 = WebRTC把信令协议塞进 WebRTC 标准
不处理 glare双方同时 offer 卡死
信令断了立刻销毁 PC媒体本来还能跑,被白白杀掉
不限速 ICE 转发攻击者刷信令拖垮服务端

权威资料