2022年webRTC服务器搭建 .pdf
《2022年webRTC服务器搭建 .pdf》由会员分享,可在线阅读,更多相关《2022年webRTC服务器搭建 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、当前位置:首页 专业 WebRTC 正文 0WebRTC 服务器搭建已有 261 阅读此文人 - 2016.06.29 - WebRTC - 刘通原文1.WebRTC后台服务 :通话的房间服务器(Room Server)房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用 Google部署在 GAE 平台上的 AppRTC 这个房间服务器实现,该 GAE App的源码可以在上获取 .该实现是一个基于Python的 GAE 应用 ,我们需要下载Google GAE的离线开发包到我们自己的 Linux 服务器上来运行该项目,搭建大陆互联网环境下的房
2、间服务器. 通话的信令服务器(Signaling Server)信令服务器是用来管理和协助通话终端建立去中心的点对点通话的一个角色。这个角色要负责一下任务:1)用来控制通信发起或者结束的连接控制消息2)发生错误时用来相互通告的消息3)各自一方媒体流元数据,比如像解码器、解码器的配置、带宽、媒体类型等等4)两两之间用来建立安全连接的关键数据5)外界所能看到的网络上的数据,比如广域网IP 地址、端口等信令服务器的具体协议实现没有严格规定,只要实现功能就OK. 我们这里依然沿用Google提供的基于GO语言和 WebSocket的信令服务器Collider. 和上面的房间服务器一并在Github上可
3、以获取 .获取到我们自己的 Linux 服务器上用GO 语言的运行环境来运行该信令服务器. 防火墙打洞服务器(STUN/TURN/ICE Server)我们目前大部分人连接互联网时都处于防火墙后面或者配置私有子网的家庭(NAT) 路由器后面 ,这就导致我们的计算机的IP 地址不是广域网IP 地址 ,故而不能相互之间直接通讯. 正因为这样的一个场景,我们得想办法去穿越这些防火墙或者家庭(NAT) 路由器 ,让两个同处于私有网络里的计算机能够通讯起来. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
4、 - - 第 1 页,共 6 页 - - - - - - - - - STUN(Simple Traversal of UDP over NATs,NAT 的 UDP 简单穿越 ); STUN 协议服务器就是用来解决这些问题 :1、探测和发现通讯对方是否躲在防火墙或者NAT 路由器后面 . 2、确定内网客户端所暴露在外的广域网的IP 和端口以及NAT 类型等信息 ;STUN 服务器利用这些信息协助不同内网的计算机之间建立点对点的UDP 通讯 . STUN 协议可以很好的解决一般家用(NAT) 路由器环境的打洞问题,但是对于大部分的企业的网络环境就不是很好了 . 这时需要一个新的解决方案:TUR
5、N(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
6、 )的动作 ,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 连通性检查进行连通性测
7、试工作,如果测试通过即表明该传输地址对可以建立连接。其中IP 地址和端口(也就是地址)有以下几种:本机地址、通过STUN 服务器反射后获取的 server-reflexive地址(内网地址被NAT 映射后的地址)、 relayed地址(和 TURN 转发服务器相对应的地址)及 Peer reflexive地址等。2.房间服务器与信令服务器搭建:我们把这一系列后台服务器搭建在公网的一个Ubuntu Linux服务器中 . 服务器的代码我们选用GoogleChrome的开源项目 ,该项目可以在Github找到: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
8、- - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - https:/ https:/ 需要依赖Google App Engine SDK for Python 和 Grunt.先搭建房间服务器AppRTC1.首先我们安装Grunt: cheetahlocalhost:/$ sudo apt-get install npm cheetahlocalhost:/$ sudo apt-get install nodejs-legacy cheetahlocalhost:/$ sudo npm -g install grunt
9、-cli;1.下载该项目的源码到某个目录: cheetahlocalhost:/$ cd ; cheetahlocalhost:/$ git clone https:/ Shell 切换当前工作目录到上一步的下载的项目目录 webrtc下,然后安装 Grunt以及 Grunt的依赖 : cheetahlocalhost:/$ cd ; cheetahlocalhost:/$ git clone https:/ 1.运行 AppRTC房间服务器之前我们需要Grunt 编译一下该项目的js 文件之类 : cheetahlocalhost:/webrtc$ grunt;上面的编译过程会自动下载安装G
10、oogle App Engine SDK至当前目录 .cheetahlocalhost:/webrtc$ ls bower.json google_appengine Gruntfile.js LICENSE.md README.md samples build google_appengine_1.9.17.zip images node_modules run_python_tests.py webtest-master CONTRIBUTING.md grunt-chrome-build index.html package.json run_python_tests.sh webtes
11、t-master.tar.gz 下一步 ,我们需要把Google App Engine SDK的目录加入系统环境变量$PATH, 并使之生效 .cheetahlocalhost:/webrtc$ echo “export PATH=$PATH:$PWD/google_appengine” /.bash_profile cheetahlocalhost:/webrtc$ source /.bash_profile 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 -
12、- - - - - - - - 这个时候我们就可以直接运行我们的房间服务器AppRTC 了.用下面的命令来开启(主机名:vpn.wuqiong.tk可以用自己的给我钱IP 地址代替 ): cheetahlocalhost:/webrtc$ dev_appserver.py host vpn.wuqiong.tk samples/web/content/apprtc/再搭建信令服务器信令服务器我们依然采用Google Chrome WebRTC项目里提供的用GO 语言编写的基于websocket的信令服务器 :Collider.我们需要先安装Go 语言运行环境支持:cheetahlocalhos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年webRTC服务器搭建 2022 webRTC 服务器 搭建
限制150内