WebRTC Demo Apprtc项目完整配置(apprtc/coturn/collider、腾讯云、https)201907

1,182次阅读
没有评论

目录
SETP1:基本依赖安装与准备
STEP2:Collider信令服务器编译安装
STEP3:配置Coturn服务器
STEP4:配置APPRTC应用服务器
STEP5:完整系统启动
参考文章
作者:花果山の香蕉
主要参考安装指导:
官方指导:https://github.com/webrtc/apprtc/blob/master/README.md
主要步骤:

下载官方源码(包含应用app)
Collider信令服务器配置
Coturn TURN服务器安装配置
调整app代码进行应用部署
启动服务及最终测试
*注意观察过程中的提示,缺什么有什么错误不要放过,一步一步慢慢来是最快的。尽可能先参考官方指导、INSTALL、README文件再看博客。整个跑通用了快3天,还是走了不少弯路。

SETP1:基本依赖安装与准备
本文使用自己的腾讯云VPS,没有使用google app engin。
获取合法SSL证书!当前信令传输与WebRTC都需要基于https即使用TLS进行通信。所以最好给域名申请证书,只用自己颁发的可能会遇到一些验证与合法性问题。本文使用腾讯云上TrustAsia TLS RSA CA办法的一年证书,获得的文件为.cert与.key,申请很快。
文中用到的网址或端口
认证的网址为
之后需要放通的端口:
本文8089
本文8101
默认8080
默认8081
获取项目原代码:
$ git clone https://github.com/webrtc/apprtc.git
得到apprtc文件夹,在文件夹下安装依赖
npm install
pip install -r requirements.txt

进一步安装配置

$ sudo apt install nodejs npm $ npm install -g grunt
-g 安装到全局目录,这样只设置全局目录的path就可以,否则node
modules会分布在不同位置
$ sudo apt install openjdk-8-jdk
$ sudo apt install golang-1.10-go
安装go:需要sodo,需要添加安装目录的bin到PATH。
$ sudo find / -name go

/usr/lib/go-1.10/bin/go

在自己使用的bashrc文件中添加到PATH, /.bashrc或者/.zshrc,添加内容:export PATH=”$PATH:/usr/lib/go-1.10/bin”
$ source ~/.zshrc
下载安装google cloud sdk: https://cloud.google.com/sdk/docs/#linux
$ tar -xf google-cloud-sdk-245.0.0-linux-x86_64.tar.gz得到google-cloud-sdk 文件夹
$ sudo ./google-cloud-sdk/install.sh
和之前相同方式添加nodejs目录和google cloud sdk目录到PTAH,本文使用如下,目录根据自己的修改:
export PATH=”/home/ts/env/google-cloud-sdk/bin:/home/ts/prepare/node-v10.16.0-linux-x64/bin:$PATH”
$ source ~/.zshrc

用到的库或者工具:

nodejs:apprtc应用通过nodejs编写
npm:包管理工具,解决代码部署问题,此处用于安装grunt
grunt:编译apprtc工程
jdk:java开发库,用于编译java代码
golang:collider使用go编写
google cloud sdk:即便不使用google app engin,由于apprtc使用google cloud sdk管理,也需要安装,
STEP2:Collider信令服务器编译安装
Colider为信令服务器,使用使用webSocket交互信息。
主要参考官方指导文档:https://github.com/webrtc/apprtc/blob/master/src/collider/README.md

2.1. go环境
Collider使用go编写,需要用go build。之前SETP1中已经安装。
建立文件夹作为go工作目录,以编译collider,如mkdir文件夹名为goWorkspace(本文将goWorkspace与官方apprtc目录放在同级),将绝对路径添加到bashrc文件中,添加内容:
export GOPATH=绝对路径/goWorkspace
source命令更新配置。
2.2 建立src文件夹并链接源码
$ mkdir $GOPATH/src
当前在执行git clone apprtc的文件夹

$ ln -s pwd/apprtc/src/collider/collider $GOPATH/src
$ ln -s pwd/apprtc/src/collider/collidermain $GOPATH/src
$ ln -s pwd/apprtc/src/collider/collidertest $GOPATH/src

2.3 安装需要的依赖
$ go get collidermain
可能出现的问题:
package golang.org/x/net/websocket: unrecognized import path “golang.org/x/net/websocket” (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
解决方法:
参考:https://my.oschina.net/u/2306127/blog/1599929

$ mkdir -p $GOPATH/src/golang.org/x
$ cd $GOPATH/src/golang.org/x
$ git clone https://github.com/golang/net.git

2.4 安装collidermain主程序
$ go install collidermain
2.5 配置证书文件
建立根目录下文件夹,并将申请得到的证书拷贝到下边
$ sudo /cert
将证书分别命名为:
$ cp xxx.cert cert.pem
$ cp xxx.key key.pem

运行collidermain的格式:
$ GOPATH/bin/collidermain -port=8089 -tls=true -room-server=”https://:8081″
-room-server配置与之后apprtc有关,之后可以再修改此命令
注:看collidermain源码似乎只能设置port、tls、room-server三个属性,启用tls=true时,使用绝对路径,会默认在/cert/下面找证书文件;证书文件有误会在浏览器看到websocket时有ERR_CERT_AUTHORITY_INVALID类似的错误。
注:collider端口需要在服务器配置上放通

STEP3:配置Coturn服务器
见 https://blog.csdn.net/ts_dchs/article/details/97279097
使用端口:8101

STEP4:配置APPRTC应用服务器
官方指导:https://github.com/webrtc/apprtc/blob/master/README.md
4.1 部分配置
安装 grunt
$ sudo npm -g install grunt-cli
4.2 修改配置文件
src/app_engine/constants.py
[a]注释掉 ICE_SERVER_OVERRIDE = None 配置TURNserver,旧版该字段为TURN_SERVER_OVERRIDE
[b]开放ICE_SERVER_OVERRIDE = [ … ]代码块,编辑为:

ICE_SERVER_OVERRIDE = [
{
“urls”: [
“turn:62.234.71.93:8101?transport=udp”,
“turn:62.234.71.93:8101?transport=tcp”,
],
“username”: “ts”,
“credential”: “12345678”
},
{
“urls”: [
“stun:62.234.71.93:8101”
]
}
]

注意:去掉有没有必要的缩进、空格,否则会出错。
[c] 修改ICE_SERVER_BASE_URL = ‘https://networktraversal.googleapis.com’ ,没有找到字段含义,如果文档还请告知【TODO】。
ICE_SERVER_BASE_URL = ‘https://networktraversal.googleapis.com’
[d]修改WSS_INSTANCE_HOST_KEY = ‘host_port_pair’为自己的https域名和
WSS_INSTANCE_HOST_KEY = ‘:8089’
[e]WSS_INSTANCES字段与WSS_HOST_PORT_PAIRS在测试中似乎不能省略。可以将WSS_INSTANCES中多余的元组去掉,只留一个元祖,将WSS_INSTANCE_HOST_KEY字段做相同修改。
其他用模型,各个字段含义还没找到文档研究,如有请告知【TODO】。

4.3 编译
在apptrc目录下执行grunt build,注意每次完成配置文件修改需要再次build,得到结果在apptrc/out下。
4.4 运行
运行apptrc nodejs应用服务器(在apprtc文件夹下)
$ dev_appserver.py –host 0.0.0.0 –enable_host_checking=no –ssl_certificate_path=/cert/cert.pem –ssl_certificate_key_path=/cert/key.pem out/app_engine
不添加host会默认只在localhost进行部署,外部无法根据域名访问;
结果如图:

发现default模块默认使用的http与https端口分别为8080与8081,主要要进行放通,或者自定义在程序中修改。

STEP5:完整系统启动
信令服务器Collider
$ $GOPATH/bin/collidermain -port=8089 -tls=true -room-server=”https://:8081″
该服务器打印结果中可以看到对进入与退出间的管理。

应用服务器APPRTC
本文在SDK目录下/apprtc,由于out文件夹
$ dev_appserver.py –host 0.0.0.0 –enable_host_checking=no –ssl_certificate_path=/cert/cert.pem –ssl_certificate_key_path=/cert/key.pem out/app_engine
打印可以可以看到应用服务器的请求-应答或者错误提示

ICE TURN服务器
$ sudo turnserver -r testrealm

最终通过https://:查看应用页面。

参考文章
webrtc:https://github.com/webrtc/apprtc/blob/master/README.md
collider:https://github.com/webrtc/apprtc/blob/master/src/collider/README.md
coturn:https://github.com/coturn/coturn/wiki/CoturnConfig
官方wiki关于coturn turnserver和turnadmin:https://github.com/coturn/coturn/wiki
https://www.jianshu.com/p/a19441034f17

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)

文心AIGC

2023 年 6 月
 1234
567891011
12131415161718
19202122232425
2627282930  
文心AIGC
文心AIGC
人工智能ChatGPT,AIGC指利用人工智能技术来生成内容,其中包括文字、语音、代码、图像、视频、机器人动作等等。被认为是继PGC、UGC之后的新型内容创作方式。AIGC作为元宇宙的新方向,近几年迭代速度呈现指数级爆发,谷歌、Meta、百度等平台型巨头持续布局
文章搜索
热门文章
清库存!DeepSeek突然补全R1技术报告,训练路径首次详细公开

清库存!DeepSeek突然补全R1技术报告,训练路径首次详细公开

清库存!DeepSeek突然补全R1技术报告,训练路径首次详细公开 Jay 2026-01-08 20:18:...
训具身模型遇到的很多问题,在数据采集时就已经注定了丨鹿明联席CTO丁琰分享

训具身模型遇到的很多问题,在数据采集时就已经注定了丨鹿明联席CTO丁琰分享

训具身模型遇到的很多问题,在数据采集时就已经注定了丨鹿明联席CTO丁琰分享 衡宇 2026-01-08 20:...
「北京版幻方」冷不丁开源SOTA代码大模型!一张3090就能跑,40B参数掀翻Opus-4.5和GPT-5.2

「北京版幻方」冷不丁开源SOTA代码大模型!一张3090就能跑,40B参数掀翻Opus-4.5和GPT-5.2

「北京版幻方」冷不丁开源SOTA代码大模型!一张3090就能跑,40B参数掀翻Opus-4.5和GPT-5.2...
开源“裸考”真实世界,国产具身智能基座模型拿下全球第二!

开源“裸考”真实世界,国产具身智能基座模型拿下全球第二!

开源“裸考”真实世界,国产具身智能基座模型拿下全球第二! 西风 2026-01-08 19:02:20 来源:...
最新评论
ufabet ufabet มีเกมให้เลือกเล่นมากมาย: เกมเดิมพันหลากหลาย ครบทุกค่ายดัง
tornado crypto mixer tornado crypto mixer Discover the power of privacy with TornadoCash! Learn how this decentralized mixer ensures your transactions remain confidential.
ดูบอลสด ดูบอลสด Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
Obrazy Sztuka Nowoczesna Obrazy Sztuka Nowoczesna Thank you for this wonderful contribution to the topic. Your ability to explain complex ideas simply is admirable.
ufabet ufabet Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
ufabet ufabet You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!
ufabet ufabet Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
热评文章
悲报!Stack Overflow彻底凉了,比18年前上线首月问题数量还少

悲报!Stack Overflow彻底凉了,比18年前上线首月问题数量还少

悲报!Stack Overflow彻底凉了,比18年前上线首月问题数量还少 闻乐 2026-01-05 19:...
全自主、更好用!北京人形 “干活机器人” 惊艳亮相 CES2026

全自主、更好用!北京人形 “干活机器人” 惊艳亮相 CES2026

全自主、更好用!北京人形 “干活机器人” 惊艳亮相 CES2026 量子位的朋友们 2026-01-06 16...
港科大教授实测AI眼镜“作弊”:30分钟碾压95%的学生,把传统教学评估体系整破防了

港科大教授实测AI眼镜“作弊”:30分钟碾压95%的学生,把传统教学评估体系整破防了

港科大教授实测AI眼镜“作弊”:30分钟碾压95%的学生,把传统教学评估体系整破防了 梦瑶 2026-01-0...
海信CES发布全新一代RGB-Mini LED,全球首创玲珑4芯真彩背光

海信CES发布全新一代RGB-Mini LED,全球首创玲珑4芯真彩背光

海信CES发布全新一代RGB-Mini LED,全球首创玲珑4芯真彩背光 量子位的朋友们 2026-01-06...