概要
为了测试webrtc官方的手机端应用AppRTCMobile,需要搭建webrtc官方的房间服务器app.rtc,但官方过程较繁琐。
笔者查到有一个开箱即用的app.rtc服务器,更方便于局域网测试:
piasy的webrtc-server镜像Out-of-the-box docker images for AppRTC-Server dev/test purpose. Docker镜像详细信息、使用教程和加速下载方法。已有9,245次下载和30个星标。https://dockers.xuanyuan.me/image/piasy/apprtc-server由于这是个docker镜像,启动容器需用docker run,命令后面带一大堆参数,个人不太喜欢,而更喜欢用docker-compose这个容器编排工具,可以很方便的启动、停止及管理多个容器。
因此,笔者将piasy的docker镜像升级成了用docker-compose方式启动。读者只需4步,即可启动apprtc服务。
本文所用操作系统为Ubuntu 20.04。
技术细节
1.安装docker-compose
sudo apt update
sudo apt install docker-compose
以上命令会自动安装docker-compose以及docker相关工具包。
安装完成后,可查看版本号(这步可以不做)
sudo docker-compose version
sudo docker version
效果如下
注意:接下来需设置docker镜像源(大陆网络这步必须做)
sudo tee /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me"
]
}
EOF
然后使其生效
sudo systemctl daemon-reload && sudo systemctl restart docker
2.下载参数配置文件
下载piasy房间服务器对应的参数配置文件constants.py:
WebRTC-Docker/apprtc-server/constants.py at master · Piasy/WebRTC-Docker · GitHub
下载保存,并记下存放目录。我保存在/home/zzz/rtc/cfg/目录下。
(注意:尽量不要使用官网的constants.py,不然匹配不上piasy的镜像)
3.编写docker-compose脚本文件
打开一个空白文本命名为docker-compose.yaml,把以下内容复制粘贴进去:
version: '3.8'
services:
apprtc-server:
image: piasy/apprtc-server
container_name: apprtc-server
ports:
– "8080:8080"
– "8089:8089"
– "3478:3478"
– "3478:3478/udp"
– "3033:3033"
expose:
– "59000-65000"
environment:
– PUBLIC_IP=192.168.1.110
volumes:
– /home/zzz/rtc/cfg:/apprtc_configs
stdin_open: true
tty: true
restart: unless-stopped
读者使用时,需要把:
environment下面的PUBLIC_IP替换成你自己的局域网IP
volumes下面的/home/zzz/rtc/cfg替换成你自己的constants.py存放目录
然后,把docker-compose.yaml文件保存在与cfg平级的目录。我存放的目录是/home/zzz/rtc/
关键字段说明: ports:映射容器端口到主机,包括 TCP 和 UDP。 expose:指定容器内部暴露的端口范围(主要用于文档说明,不强制映射)。 environment:设置环境变量 PUBLIC_IP。 volumes:挂载本地目录 /home/zzz/rtc/cfg 到容器中的 /apprtc_configs。 stdin_open 和 tty:对应 -it 参数,保持交互式终端开启。 restart:推荐设置重启策略,例如 unless-stopped。
4.启动服务
进到docker-compose.yaml文件所在目录,使用up命令启动服务,如果是第一次启动,则会自动拉取piasy/apprtc-server的docker镜像:
cd /home/zzz/rtc/
docker-compose up
启动后效果如下:
至此,只用了4步,就完成了apprtc服务启动。
如果要停止服务,把命令up改为down
如果要以后台模式运行,可在命令up后加-d
5.浏览器设置
测试前,需要打开chrome,设置允许http。(否则会出现黑屏,且F12调试会发现console中有不能获取getUserMedia错误,原因是新版chrome已经默认不支持http请求)
解决方法是在浏览器chrome中输入
chrome://flags/#unsafely-treat-insecure-origin-as-secure
填上服务器的IP和端口号,再点击Enable,最后点右下角的Relaunch。例如,本文的apprtc服务所在的Ubuntu IP是192.168.1.110,如下图所示:
同时在另一台测试机器的chrome中进行同样设置。
6.正式测试
在浏览器chrome中输入
http://192.168.1.110:8080
然后输入任意一个6位数或以上的房间名,点击JOIN
另一台测试机器加入同一个房间,即可建立音视频通话。
成功后效果如下:
小结
读者根据本文,只需简单的4步,即可启动apprtc服务,非常方便。
笔者中间也踩过坑:
先前用其它镜像源,在自动拉取环节一直报错。直到发现本文开头提到的镜像源,问题解决。
另外,先前用官方的房间服务器参数配置文件constants.py,测试环节一直连不通,后来换成了piasy的constants.py,重启服务,问题解决。
—————-
技术问题探讨:
欢迎进Q群730264693
或加QQ3902031884
评论前必须登录!
注册