AppRTC服务器搭建

WebRTC,是Web Real-Time Communication的缩写,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术,于2011年5月开放了工程的源代码,在行业内得到了广泛的支持和应用,成为下一代视频通话的标准。

这篇文章要搭建的,是基于webrtc的apprtc示例,GitHub地址:https://github.com/webrtc/apprtc 里面有讲一些安装步骤,但是不够仔细,楼主试了几天,填了很多坑之后,终于将环境搭起来了,过程比较艰辛,要安装的东西和注意的细节太多,值得写篇文章来记录一下~

准备工作

了解原理

需要搭建三个服务器,分别是房间服务器、信令服务器以及打洞服务器

  • 通话的房间服务器(Room Server)

    房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用Google部署在GAE平台上的AppRTC这个房间服务器实现,该GAE App的源码可以在github.com上获取.该实现是一个基于Python的GAE应用,我们需要下载Google GAE的离线开发包到我们自己的Linux服务器上来运行该项目,搭建大陆互联网环境下的房间服务器。

  • 通话的信令服务器(Signaling Server)

    信令服务器是用来管理和协助通话终端建立去中心的点对点通话的一个角色,主要功能如下,具体协议实现没有严格规定,只要能实现功能就行

    1. 用来控制通信发起或者结束的连接控制消息
    2. 发生错误时用来相互通告的消息
    3. 各自一方媒体流元数据,比如像解码器、解码器的配置、带宽、媒体类型等等
    4. 两两之间用来建立安全连接的关键数据
    5. 外界所能看到的网络上的数据,比如广域网IP地址、端口等
  • 防火墙打洞服务器(STUN/TURN/ICE Server)

    我们目前大部分人连接互联网时都处于防火墙后面或者配置私有子网的家庭(NAT)路由器后面,这就导致我们的计算机的IP地址不是广域网IP地址,故而不能相互之间直接通讯. 正因为这样的一个场景,我们得想办法去穿越这些防火墙或者家庭(NAT)路由器,让两个同处于私有网络里的计算机能够通讯起来。
    ICE协议是一个offer/answer模型的扩展,是综合TURN和STUN的综合性NAT穿越解决方案,通过在offer和answer的SDP(Session Description Protocol)里面包含多种IP地址和端口,然后对本地SDP和远程SDP里面的IP地址进行配对,然后通过P2P连通性检查进行连通性测试工作,如果测试通过即表明该传输地址对可以建立连接。有兴趣可以去搜索了解一下,这次要安装的ICESever是coTurn,它的功能比较丰富,是一个C/C++语言的开源项目,项目地址: https://code.google.com/archive/p/coturn/

环境准备

先说一下,楼主系统是ubuntu14.04,内网IP是125.216.242.151,后续很多命令都是基于ubuntu,很多配置中都要用到IP地址,而且需要填写机构或key的时候,楼主都是用的ID:jwcqc,另外,所有的下载或安装都在/server/目录下。

首先需要安装nodejs包管理和分发工具npm:

sudo apt-get install npm

其次是安装python-webtest:

sudo apt-get install python-webtest

科学上网

由于安装过程中像Google App Engine和编译安装collider都需要FQ,因此最好提前准备好 FQ 环境,否则安装过程中会遇到网络引起的各种错误。

作为示例,楼主系统是ubuntu14.04,已通过设置http代理实现科学上网,只需编辑 /etc/profile,填入以下三行即可:

export http_proxy=http://your_proxy.com:port/
export ftp_proxy=http://your_proxy.com:port/
export https_proxy=http://your_proxy.com:port/

然后 source /etc/profile 进行保存,可以使用curl www.google.com 测试一下是否设置成功。


环境搭建

房间服务器搭建

  1. 安装依赖
sudo apt-get install nodejs
sudo npm install -g npm
sudo apt-get install nodejs-legacy
sudo npm -g install grunt-cli
  1. 下载apprtc源码

找到一个目录用来存放源码(楼主下载时最新提交版本是3459f8c1ba69a8011f117de3b46b2f19372e1660),依次执行

git clone https://github.com/webrtc/apprtc.git
cd apprtc
npm install  //install grunt and required grunt dependencies
  1. 修改配置文件

接下来需要修改项目中的 /apprtc/src/app_engine/constants.py,修改的部分内容如下:

//turn打洞服务器配置
TURN_BASE_URL = 'https://125.216
1 硬件需求 1.1 基本配置 配件 数量 CPU 2核 内存 4G 硬盘 100G 1.2 最低配置 配件 数量 CPU 2核 内存 2G 硬盘 10G 2 软件需求 名称 分类 版本 Windows 操作系统 2003及以上 jdk Java虚拟机 1.5.x及以上 Tomcat Web服务器 5.x及以上 Easy do it (轻松互联网开发平台,简称轻开平台,原名WebEasy) 应用开发服务器 2014及以上 Access 数据库 97及以上 EditPlus 开发工具 2.x及以上 3 软件安装 4 发布 4.1 下载 Easy do it,轻松互联网开发平台(简称轻开平台,原名WebEasy)下载地址: CSDN下载频道:http://download.csdn.net/detail/tx18/8711175 百度云盘:http://pan.baidu.com/s/1eQElpom 官网:http://edoit.htok.net/ 最新更新的下载包:http://download.csdn.net/user/tx18 4.2 发布 复制webeasy目录到D:\下,然后进入%TOMCAT_HOME%\conf目录,用文本编辑器(如:EditPlus)打开server.xml文件,在“Host”标签下添加一“Context”标签: 保存退出并启动tomcat 5 编辑工具 轻开平台可以用任何网页或文本编辑器进行开发,我本人一直在使用EditPlus,以下推荐常用的编辑软件: • EditPlus EditPlus 是一款功能强大的文字处理软件。它可以充分的替换记事本,它也提供网页作家及程序设计师许多强悍的功能。支持 HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript、VBScript 等多种语法的着色显示。程序内嵌网页浏览器,其它功能还包含 FTP 功能、HTML 编辑、URL 突显、自动完成、剪贴文本、行列选择、强大的搜索与替换、多重撤销/重做、拼写检查、自定义快捷键,等等... EditPlus中文版包含在下载包中 6 开发 6.1 第一个json 新建一个扩展名json的文件,如one.json(下图) 然后录入如下内容 {"item":{ 土豆 1.24 KG T恤 68 件 可乐 2.20 瓶 书 51.24 本 @{item:name} @{item:price} @{item:unit} },"sort":@{int:@{item:getSuffix}+1} } 6.2 针对移动App(json格式)的规则及开发例子 除了基本开发标签语言及表达式(参见同一下载包中的开发手册)外,轻开平台特别针对移动App最常用的json文本格式开发的对应规则:  文件扩展名须为json(如:one.json)或用JspEasy扩展  文件内容须为闭合的json格式,静态内容则可直接书写json格式,如: {“item”: { … … },”other”:”other value” }  value属性参数表示输出不带引号的值,如: @{item:price} 输出:"pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值