1、概述
WebRTC支持对等通信,但是它仍然需要服务器,以便客户端可以交换元数据以通过称为信令的过程协调通信,并应对网络地址转换器(NAT)和防火墙。本文向您展示如何构建信令服务,以及如何处理与STUN和TURN服务器的真实连接的问题。
2、信令服务
2.1什么是信令
信令是协调通信的过程。为了使WebRTC应用程序能够建立呼叫,其客户需要交换以下信息:
用于打开或关闭通信的会话控制消息
错误讯息
媒体元数据,例如编解码器,编解码器设置,带宽和媒体类型
用于建立安全连接的关键数据
网络数据,例如外界看到的主机的IP地址和端口该信令传递过程需要一种方便客户端之间来回传递消息的方式。
为了避免冗余并最大程度地与现有技术兼容,WebRTC标准未指定信令方法和协议。因此需要开发者自行设计。无论你使用什么方式,都需要一个中间服务器来在客户端之间交换信令消息和应用程序数据。
另外在webrtc的连接中每次重新连接都需要加载传输sdp等元数据信息,可以将此类数据存在信令服务。由于信令服务只传输一些会话描述SDP等元数据信息,因此信令服务传输的压力并不大。如果向知道这些元数据都包含了什么意思可以查看 Internet Engineering Task Force (IETF) examples
v=0 o=- 7614219274584779017 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 c=IN IP4 0.0.0.0 a=rtcp:1 IN IP4 0.0