Mac 上搭建 WebRtc 服务器
前言
最近一段时间在我的音视频直播高级研发群里总是有人问有什么好用的开源的 webrtc 服务器吗?我总是向他们解释说自己写一个不就完了,没那么难。
但后来自己想想,对于我这种长期从事音视频直播开发,且对服务器开发特别熟悉的人来说也许不难。但对于那些想学习 webrtc,但又没找到任何门路的人来说,也许真有不少困难。
自己写个服务器开源出来?是有这个计划,但现在还不到时候。于是我在网上查了查,现在还真有不少webrtc的开源服务器。基本都是基于node.js做的。但就是布署文档写的不全,造成大家在搭建环境时出现各种困难。
今天,我们就以 Licode 为例,介绍一下如何在Mac上搭建一个 Licode 服务器作为WebRtc的服务器。
在MAC上搭建?还是在Linux上搭建?
做为一个 Linux 服务器端的老兵来说,在我内心深处一定会1000次的告诉你,服务程序一定要在Linux环境下搭建,而且要在最新的,最稳定的 Linux 服务器上搭建。首选,Ubutun 。
但这个经验在 Licode 这个项目上真的不能用。在 Licode 的官方文档上已经写的很明确,它只支持 Ubuntu 14.04 LTS 这个 Linux 版本,其它版本上搭建 Licode 是否成功,只能看搭建者的命了,他一概不负责。
我自己亲试,在我的 ubuntu 17.04 上还真无法让 Licode 这个服务跑起来。这哪里是写服务器程序,纯粹是写了一个“玩具”而以。真的是想让人骂娘啊。
还好,我这里有一台Mac Pro 用于我日常的工作使用。那就是Mac上搭建环境吧。
在 Mac 上搭建也没那么容易
按照 Licode 官网的说法,在 OSX 10.11 及之后的版本上都可以安装 Licode。安装步骤很简单就下面几步:
- 下代码
git clone https://github.com/ging/licode.git
cd licode
- 安装依赖
./scripts/installMacDeps.sh
- 安装 Licode
./scripts/installErizo.sh
./scripts/installNuve.sh
- 安装基例子
./scripts/installBasicExample.sh
- 测试Licode
./scripts/installBasicExample.sh
当我一步一步执行时,除了下代码没出问题外,其它每一步都遇到了问题,真是坑爹啊。我想问问 Licode,咱的脚本能写的健壮点吗?
安装Licode注意事项
安装依赖
在执行 ./scripts/installMacDeps.sh 脚本时,一定要仔细看它的提示信息,看看是不是所有的依赖工具都已经安装好了。一但某个工具安装出问题了,后面就无法进行了。(大家一定要仔细看它每一个执行脚本执行后的提示信息哟)
安装 Licode
-
在执行 ./scripts/installErizo.sh和./scripts/installNuve.sh脚本时,一定在执行之前加上 sudo,因为这两个脚本是需要管理员权限的。
-
另外,在安装的过程中遇到了 npm 安装 js 包失败情况,我也没搞明白为啥失败。我是在重装 npm,且在~/.npmrc文件中添加了
registry = http://registry.cnpmjs.org
这个设置之后才最终将这两个脚本执行成功的。别问我为什么,我对现在的 js 基本没了解,都是在网上查的。
Xcode Command Line Tools
Licode在Mac上安装需要使用 Xcode Command Line Tools,所以你要记得先将 Xcode Command Line Tools 安装到 Mac上。如何安装?在网上查吧。
**启动 rabbit mq **
Licode 的启动需要用到 rabbit mq服务。所以在启在Licode 服务之前你需要将 rabbit mq 安装好,并将它启动起来。启动方法如下:
brew services start rabbitmq
至此,我总算将 Licode 服务搭建起来了。现在来看一下效果吧
小结
通过上面的分析,大家可以清楚的认识到 Licode 目前还只是一个“玩具”,还不具备商用的可能性。
另一方面,如果大家想在 ubuntu 上安装,那一定要选择 ubuntu 14.04 ,否则自己就会掉到坑里去。
第三,在Mac上安装也不会一帆风顺,不过我已经搭起来了。大家搭建的时候多注意它执行脚本的提示信息,如果出错了,按照提示的错误去解决问题,一定是可以将它搭建起来的。
祝你们好运!