云计算百科
云计算领域专业知识百科平台

搭建webrtc的房间服务器apprtc(2025/06/03)

概要

为了测试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

赞(0)
未经允许不得转载:网硕互联帮助中心 » 搭建webrtc的房间服务器apprtc(2025/06/03)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!