WebRTC音视频实时互动技术:原理、实战与源码分析
上QQ阅读APP看书,第一时间看更新

4.4.1 信令服务器的实现方案

要实现一个一对一的WebRTC信令服务器可以有很多种方案,这里介绍两种最常见的实现方案。

方案一,使用C/C++、Java等语言从零开始开发一个信令服务器。这种方案的实现成本非常高,要写很多代码,还要对编写的代码进行大量的测试。使用这种方案,即使开发一个最简单的HTTPS服务器,至少也要花两周以上的时间。

方案二,利用现成的Web服务器做应用开发,如以Apache、Nginx、NodeJS为服务,在其上做应用开发是非常不错的选择。

建议采用第二种方案,它有以下几方面优势:

·一般信令系统都需要使用HTTP/HTTPS、WS/WSS等传输协议,而Apache、Ng inx、NodeJS等服务器显然在这方面有天然的优势。

·实时通信的信令服务器一般负载都不是特别高。举个例子,假设有10000个房间同时在线,我们可以评估出大部分房间只需要处理几个信令,那么总的消息量也不过是几万个,这个量级对于Nginx和NodeJS来说,单台服务器就可以应付了。

·通过Nginx或NodeJS实现信令服务器特别简单,只要几行代码就可以实现。

·稳定性高。像Apache、Nginx、NodeJS这类服务器都经过了长时间的验证,所以它们的稳定性是可以得到保障的。

基于以上几点原因,建议你采用第二种方案实现自己的信令系统。

在第二种方案中,尤其推荐使用Node.js来实现信令服务器。虽然NodeJS在性能上不如Nginx,但对于我们这种学习项目来说使用它已经足够了,而且它使用起来也特别简单,还有非常好的生态链,很多逻辑关系不需要我们自己写,大大减少了开发信令服务器的工作量。