通过WebRTC的端到端通信通常被人们所误解。WebRTC并不是真正意味着你不需要服务器来协商和联接通话。它只意味着,在多数情况中,你可以直接地在浏览器之间进行通信。
要想让任何WebRTC服务正常的工作,你需要如下几条后端服务器:
1.信令服务器:对于联接浏览器之前的对话来说,最重要的就是某种中介器—一个了解通话双方端点的服务器。这就是信令服务器,负责协商会话,而且可能是最接近WebRTC服务器的东西了。
通常,这个服务器也会穿过会话发送相关数据。信令服务器可以实施像SIP或XMPP的标准化协议,或者私有协议。有时,信令内容也会作为Web服务器的一部分来操作网页。其他情况中,信令服务器就专门用来处理信令了。
2.TURN和STUN服务器:当通话两端端点都检测到了对方的时候,他们会尝试着在其之间建立直接联接—有时候会有用,但也有不起作用的时候。
当没有用的时候,是因为在通信通道上的网络地址转换或者防火墙机制,要么掩盖了浏览器的地址,将其从私人IP地址转换到公共地址,要么它们认为这个会话是不安全的,以至于它们会阻拦流入的数据流并且不允许通话的进行。
为了克服这些问题,WebRTC使用了STUN和TURN,它们是要求服务器构件来协助协商媒体传输的协议,而且有时将所有的媒体都中继给TURN服务器。
3.媒体服务器:甚至在协商信令以及联通媒体之后,我们可能还想要在服务端处理媒体。这种功能是需要有的,因为这样用户就可以实施一个有着大量参与者的会话,并且记录存档会话或会话到其他类型的网络协议的网关。在这些情况中,我们就会用到后端的媒体服务器。
根据使用情况,上面所介绍的每种服务器都可以被认为是WebRTC服务器或者是与WebRTC服务器相关。在大多情况中,通常是将信令服务器视为WebRTC服务器的。