一、为什么要使用信令服务器
信令在WebRTC的端到端的交互中,是必不可少的。没有信令服务器,一个完整的WebRTC端到端连接,交换完数据的过程是无法完成的。主要作用表现在以下几方面:
1、协商媒体功能和设置(WebRTC基础知识体系构建-媒体定义)
在两个端到端的WebRTC连接中,交换SDP(Session Description Protocal)会话描述协议中包含的信息。SDP中包括音视频类型,编解码器,编解码的各项参数,以及带宽等信息。通过SDF的交换,使接收端弄清楚发送端要发送的内容,以及自己是否能顺利接收发送的内容(就像我们去买一个产品配件,如果不弄清出需要的型号,有没有安装需要的工具,回去之后肯定无法顺利安装)
2、交换候选IP地址和端口号,用于ICE打洞(WebRTC基础知识体系构建-穿透)
3、交换SRTP的秘钥材料。
3、在使用标准信令协议(如SIP和Jingle)发起实时通信时,信令通道将提供参与者的标识,并可以选择进行身份验证。
4、传统多媒体信令协议(如SIP和Jingle,或某种专项协议),可以提供绘会话呼叫控制。WebRTC中,虽然信令能发起和更改媒体绘话,但并不需信令来指示状态或终止绘话。ICE状态机,可以提供会话的进度信息,以及ICE持续同意检查失败,则表明连接已经终止。
二、WebRTC信令的传输方式
1、HTTP
单独的HTTP信令服务器,各终端和服务器通过HTTP请求进行信令的交互。
2、WebSocket
单独的WebSockt信令服务器,各终端和服务器通过WebSocket建立的双向连接直接进行交互,WebSocket起到一个消息中转的作用。
3、数据通道。
WebRTC除了支持两终端直接进行媒体数据的交换,还支持两端直接进行数据的的交换,即两端可以不通过服务器,直接在数据通道上交换数据。相比HTTP和WebSocket,数据通道支持流量大,延迟低,稳定可靠的连接。
数据通道是基于SCTP协议建立的独立的连接通道。(WebRTC基础知识体系构建-协议)
三、信令通道涉及到的协议
1、通过专有方案实现的信令通道方案
HTTP 轮询(涉及到了HTTP协议)
WebSocket代理(涉及到了WebSocket协议)
google 的应用程序引擎api作为信令通道(其中使用了HTTP轮询方式传输,涉及到了HTTP协议)
2、通过标准协议实现的信令通道的方案
WebSocket SIP:(WebRTC基础知识体系构建-协议)
基于WebSocket和SIP 建立连接并进行信令的交互
WebSocket Jingle: (WebRTC基础知识体系构建-协议)
基于WebSocket和Jingle 建立连接并进行信令的交互