主要参考:Ubuntu下配置webrtc服务器

————————————————————————————————————————————————

原理介绍:<以下文字copy自上文>

  • 房间服务器

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

  • 信令服务器

信令服务器是用来管理和协助通话终端建立去中心的点对点通话的一个角色.这个角色要负责一下任务:

  • 用来控制通信发起或者结束的连接控制消息
  • 发生错误时用来相互通告的消息
  • 各自一方媒体流元数据,比如像解码器、解码器的配置、带宽、媒体类型等等
  • 两两之间用来建立安全连接的关键数据
  • 外界所能看到的网络上的数据,比如广域网IP地址、端口等

信令服务器的具体协议实现没有严格规定,只要实现功能就OK.
我们这里依然沿用Google提供的基于GO语言和WebSocket的信令服务器Collider.和上面的房间服务器一并在Github上可以获取.获取到我们自己的Linux服务器上用GO语言的运行环境来运行该信令服务器.

  • coturn打洞服务器

我们目前大部分人连接互联网时都处于防火墙后面或者配置私有子网的家庭(NAT)路由器后面,这就导致我们的计算机的IP地址不是广域网IP地址,故而不能相互之间直接通讯. 正因为这样的一个场景,我们得想办法去穿越这些防火墙或者家庭(NAT)路由器,让两个同处于私有网络里的计算机能够通讯起来.
TURN(Traversal Using Relay NAT,允许在TCP或UDP的连线上跨越 NAT 或防火墙. TURN是一个Client-Server协议。TURN的NAT穿透方法与STUN类似,都是通过取得应用层中的公有地址达到NAT穿透,但实现TURN client的终端必须在通讯开始前与TURN server进行交互,并要求TURN server产生"relay port", 也就是relayed-transport-address.这时 TURN server会建立peer,即远端端点(remote endpoints), 开始进行中继(relay)的动作,TURN client利用relay port将资料传送至peer,再由peer转传到另一方的TURN client.通过服务器新产生的peer来进行数据的中转.
ICE协议就是综合前面2种协议的综合性NAT穿越解决方案.
通过offer/answer模型建立基于UDP的通讯。ICE是offer/answer模型的扩展,通过在offer和answer的SDP(Session Description Protocol)里面包含多种IP地址和端口,然后对本地SDP和远程SDP里面的IP地址进行配对,然后通过P2P连通性检查进行连通性测试工作,如果测试通过即表明该传输地址对可以建立连接。其中IP地址和端口(也就是地址)有以下几种:本机地址、通过STUN服务器反射后获取的server-reflexive地址(内网地址被NAT映射后的地址)、relayed地址(和TURN转发服务器相对应的地址)及Peer reflexive地址等。

搭建服务器:

github上的appRTC源代码工程:appRTC

官网配置教程:appRTC配置教程

  • 配置环境

设置翻墙

验证java环境并安装

java -version
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-i586.rpm"
rpm -ivh jdk-8u102-linux-i586.rpm

配置java环境变量

安装python-webtest

sudo yum install python-webtest

安装npm【会附带将依赖的nodejs一起安装】

官方安装文档    setup_9.x里面的9代表版本号第一位,可以根据所需替换。如果要卸载npm,可以使用yum remove nodejs

yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_9.x | sudo -E bash -
yum install nodejs

npm --version #查看npm版本

安装grunt-cli【因为我也不是很懂grunt和grunt-cli的关系,所以分别执行了一次安装命令】

npm install -g grunt
npm install -g grunt-cli
  • 下载源码

s

CentOS下配置webrtc服务器相关推荐

  1. centos下配置gitosis服务器

    背景: 一台windows电脑,Xshell可以登录centos服务器(centos7.2 64位,有root用户权限),windows电脑已经安装好git和tortoies 在windows下下载和 ...

  2. centos svn服务器端口配置文件,centos下配置svn服务器

    安装了lnmp的集成环境包,服务器倒是很快就安好了. 从官网下载一个SVN回来安装,刚开始因为下的svn是1.7的,但是他的支持包又是1.6的,结果编译不过,后来换成了 1.6的,编译安装无问题,不过 ...

  3. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  4. CentOS下架设VNC服务器

    CentOS下架设VNC服务器 1.什么是VNC服务器? 百度百科: VNC (Virtual Network Computer)是虚拟网络计算机的缩写.它 是一款优秀的远程控制工具软件,由著名的 A ...

  5. linux(centOS)下搭建node服务器之一、 安装Node.js

    本例系统环境:腾讯云 CentOS 7.4 64位 一.找相应node版本,复制链接 1. 打开网址 http://nodejs.cn/download/; 2. ctrl+shift+i(打开开发者 ...

  6. 虚拟机linux ftp慢,虚拟机Linux下配置FTP服务器的方法

    虚拟机Linux下配置FTP服务器的方法 1.确保虚拟机系统与宿主系统是桥接设置,以方便连接. 2.在虚拟机系统中安装ftp服务器,我安装的是vsftpd服务器.由于安装的虚拟机系统CentOS 中已 ...

  7. CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

  8. centos oracle 服务自动启动,CentOS下配置Oracle 11gR2为系统服务自动启动

    CentOS下配置Oracle 11gR2为系统服务自动启动 CentOS下配置Oracle 11gR2为系统服务自动启动 为什么80%的码农都做不了架构师?>>> PS:在Wind ...

  9. linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效

    CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...

最新文章

  1. 基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究
  2. C 语言编程 — 运算符
  3. 孙庆新:做产品,感觉从何而来
  4. 【Java学习】JDBC可以再深一点理解
  5. C++中的STL--结构概览
  6. [转]Centos 安装Sublime text 3
  7. Linux文件系统的目录结构详解
  8. java列表mvc分页_Springmvc完成分页的功能
  9. ADO.NET实体框架Entity Framework模型-基于元数据解析
  10. 浅谈浏览器端JavaScript跨域解决方法
  11. 深圳无车日:吕锐锋搭公交 卓钦锐徒步走
  12. C语言上机复习(一)文件操作
  13. 计算机课程综合实训自我鉴定,计算机教学实习的自我鉴定范文
  14. 读书笔记(一)数联网——大数据如何互联
  15. 本科计算机考研考英语,2016考研必需知道的10件事
  16. 如何在word中使用latex输入下括号?
  17. JDBC 第一章 JDBC概述
  18. 洛谷p2404 自然数的拆分
  19. RDPCrystal EDI SDK 10.0.4.X Crack
  20. Mac常用快捷键一览

热门文章

  1. 【亚马逊运营】优惠券是怎么扣费的你都知道吗?
  2. Java StringBuffer谜题
  3. python网络爬虫--下载图片
  4. 抹机王怎么一键新机_抹机王怎么进行一键新机???
  5. php爬取房源,(python) scrapy抓取房天下房源信息
  6. 从6730个微信用户中分析出大家的手机使用习惯
  7. 使用php吧excel数据存到数据库,php导入excel表,保存进数据库,使用phpexcel插件
  8. 单片机初学者适合看什么书?
  9. 服务端开发---云数据库mysql的常见问题
  10. 最简单的ROS安装方法和rosdepc安装(一行代码搞定)