4.1 WebRTC一对一架构

在构建WebRTC一对一信令服务器之前,我们先从全局的角度来看一下WebRTC一对一架构是什么样子的,这样更有利于了解WebRTC信令服务器所处的位置。其架构图如图4.1所示。

WebRTC由四部分组成,分别为两个WebRTC终端、一个信令服务器、一台中继服务器(STUN Session Traversal Utilities for NAT,NAT会话穿越实用工具协议。/TURN Traversal Using Relay NAT,通过中继方式穿越NAT。)和两个NAT Network Address Translation,网络地址转换。,这是最经典的一对一通信架构。其中,信令服务器与中继服务器都在NAT外,也就是属于外网。而两个WebRTC终端在NAT内,属于内网。

对于两个WebRTC终端而言,它们是如何进行通信的呢?首先两个终端在通信之前,都要先与信令服务器连接,即图4.1中的步骤❶。与服务端建立好连接后,通信的双方就可以通过信令服务器彼此交换必要的信息了,比如告诉对方自己的外网IP地址和端口是多少等。

不过在交换信息之前,WebRTC终端还要与STUN/TURN服务器建立连接。这样做的目的是通过STUN/TURN服务器获得各自的外网IP地址和端口,即图4.1中的步骤❷。

图4.1 WebRTC 1:1架构图

WebRTC终端拿到自己的外网IP地址和端口后,再通过信令服务器交换给对方。当彼此获得对方地址后,它们就可以尝试NAT穿越,进行P2P连接了,也就是图4.1中的步骤❸。

[1] Session Traversal Utilities for NAT,NAT会话穿越实用工具协议。

[2] Traversal Using Relay NAT,通过中继方式穿越NAT。

[3] Network Address Translation,网络地址转换。