主要参考: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. 重启centOS丢失nginx.pid导致无法启动nginx的解决方法
  2. Oracle 默认时间格式 Date格式转换
  3. 全球化的LoRaWAN协议会给我们带来什么?
  4. 外贸电子商务软件必须提供的SEO特性
  5. 3 微信开发本地代理环境的搭建--实现将内网ip映射到外网
  6. html入门的一些东西
  7. c51单片机汇编语言指令,51单片机汇编指令详解
  8. git add所有文件
  9. p20 021 函数:我的地盘听我的
  10. GPIO接口-引脚对照
  11. 26学习渗透测试工具 Metasploit 的基本用法,包括漏洞扫描、攻击模块
  12. EPUB和PDF的区别,有什么好用的epub阅读器
  13. 命令查看spf_什么是SPF、邮箱域名SPF记录查询方法
  14. Redis之事务的实现
  15. ADC前BUFFER(跟随器)作用
  16. 错误 LNK2019,无法解析的外部符号__imp____iob_func; 无法解析的外部符号 __imp__fprintf 的解决方法。
  17. 从netfilter的NF_IP_PRE_ROUTING抓包 和 用libpcap抓包有什么区别?
  18. 人体部位检测:BodyHands
  19. 图谱实战 | 为什么我们需要医学知识图谱?
  20. Oracle VM VirtualBox虚拟机添加硬盘

热门文章

  1. ORACLE通过sql生成一天内1440分钟与86400秒
  2. ecu故障现象_发动机不能启动的原因和故障排除方法
  3. 发动机单体泵与高压共轨两者的区别
  4. Java按照固定pdf模板生成pdf文件——itext
  5. 主页设计中配色方案的使用
  6. 2022年多益网络秋招笔试
  7. 单片机入门(单片机基本知识及Keil软件的基本使用)--适合初学者
  8. 开源系列:AI对抗攻防算法开源平台,哪家强?
  9. 多线程---线程池的使用
  10. H265码流分析详解