WebRTC场景下是否可以将TURN服务器同时用作信令服务器?
问题答复
关于能否复用TURN服务器作为信令服务器
- 结论:不可行,该思路存在逻辑因果倒置问题
- 原因:TURN服务器是WebRTC传输层的中继组件,仅在两端完成SDP交换、ICE候选协商、成功建立中继会话后,才会承担流量转发职责。在交换SDP的阶段,你尚未完成TURN会话握手,TURN服务器无法识别需要转发的消息接收方,也没有可用于传输信令的已建立中继通道,因此无法替代独立信令通道的预连接消息路由能力。
关于能否硬编码SDP先建立数据通道再升级协商音视频
- 结论:完全可行,该方案是业内固定场景WebRTC应用的常用实现方案
- 实现注意事项:
- 提前生成固定的DTLS证书,将证书指纹、支持的加密套件、SCTP端口、数据通道配置等参数提前写入两端固定的SDP模板中,保证offer和answer的对应参数匹配,避免握手失败
- 符合你强制走TURN的需求:可以在硬编码SDP时直接禁用host、srflx类型的ICE候选,仅允许relay类型的TURN候选接入,强制所有流量走TURN转发
- 数据通道建立完成后,你可以自定义简单的私有信令协议,通过已建立的数据通道传输后续的音视频SDP协商、ICE候选交换逻辑,完全不需要额外部署独立信令服务器
内容的提问来源于stack exchange,提问作者Jim Heising
相关产品推荐
相关产品推荐

