VIDEO CHAT / 使用与部署记录
视频通话教程
本栏目只记录视频项目的使用、独立部署和排查过程。更新日期:2026-09-15。
正式入口:https://video.shanbo-rig.com/ · HTTPS 已启用,HTTP 域名访问自动跳转。
01 · 开始使用
- 打开首页,在设置中填写昵称。
- 输入房间号和可选密码,创建房间;另一位参与者选择相同房间加入。
- 在聊天室发送文字,验证成员列表和消息同步。
- 通过 HTTPS 或本机 localhost 访问时,允许浏览器使用摄像头和麦克风,再测试静音、摄像头、屏幕共享。
- 字幕翻译在设置中启用;付费翻译服务需要自行配置 API 密钥。
正式域名 HTTPS 已启用,浏览器可在安全上下文中申请媒体权限。首页、聊天室与加密信令已验证;双设备摄像头、麦克风、屏幕共享和跨网络媒体通话仍需实际测试。IP + HTTP 仅保留为基础连通性测试入口。
02 · 独立部署配置
| 项目 | 配置 |
|---|---|
| 代码目录 | /www/wwwroot/webrtc-video-chat |
| 服务 / 运行用户 | webrtc-video |
| 内部监听 | 127.0.0.1:3100 |
| 独立数据 | /var/lib/webrtc-video |
| 环境配置 | /etc/webrtc-video.env(仅 root 可读) |
| 正式域名 | video.shanbo-rig.com(HTTPS 已上线) |
- 先检查端口和目标目录是否空闲,确认已有 Nginx 配置检查通过。
- 拉取代码,使用官方源安装生产依赖。
- 配置独立用户、环境变量和 systemd 服务。服务最多使用 512 MB 内存和相当于一个 CPU 核心的额度。
- 独立 Nginx 站点把 HTTP 页面、Socket.IO 与 PeerJS 统一转发到 3100;保留 WebSocket 升级头。
- 先检查 Nginx 配置,再平滑重载,最后验证页面、信令和聊天室。
npm install --omit=dev --package-lock=false --registry=https://registry.npmjs.org systemctl status webrtc-video --no-pager journalctl -u webrtc-video -n 50 --no-pager curl -I http://127.0.0.1:3100/ nginx -t
更新或重启只针对 webrtc-video 服务;不要使用批量重启全部服务的命令。
03 · 本次问题与处理
npm 下载依赖返回 404:服务器默认 registry 指向二进制文件镜像路径,不能用来解析 cors 等 npm 包。安装命令增加 --registry=https://registry.npmjs.org,只影响本次命令。
宝塔终端操作超时:先查看截图确认命令是否已输入或执行,避免重复部署。页面文字读取不到终端内容时,用真实终端截图核对结果。
HTTP 页面反复提示 PeerJS network 错误:旧客户端在标准端口留空时会采用 PeerJS 默认 443 端口。已修复为 HTTP 明确使用 80、HTTPS 使用 443,自定义端口保持原值。
网页打开但信令断开:核对代理的 Upgrade、Connection 头,PeerJS 路径为 /peerjs/peerjs/。本项目使用单端口,不需要另开 9000。
跨网络视频无法连接:HTTPS 与信令正常不代表媒体链路一定可用。需要使用两台设备测试;严格 NAT 网络可能需要单独配置 TURN。
04 · 域名与 HTTPS(已完成)
- DNS A 记录:
video → 43.160.236.132。 - 宝塔「网站 → 反向代理」单独添加
video.shanbo-rig.com,代理地址为http://127.0.0.1:3100,保留 WebSocket 升级头。 - 宝塔「SSL → 免费证书 → 申请证书」选择 Let's Encrypt、文件验证,并勾选视频域名。证书已签发且部署成功,当前证书到期日为 2026-12-14;面板自动续签开关已开启。
- 文件验证目录为
/www/wwwroot/video.shanbo-rig.com/.well-known/acme-challenge/。这不是应用代码目录;保留该目录和宝塔验证配置以支持续签。 - 在视频站点「设置 → SSL → 当前证书」开启强制 HTTPS。公网 HTTP 已验证返回 301 并跳转同域名 HTTPS。
- 客户端正式配置设置域名、端口
443和secure: true;服务环境设置PUBLIC_URL=https://video.shanbo-rig.com。 - 检查配置后平滑重载 Nginx,只重启
webrtc-video。公网 HTTPS、Socket.IO WSS 聊天收发、PeerJS WSS 连接均通过验证。
nginx -t && nginx -s reload systemctl restart webrtc-video systemctl is-active webrtc-video curl -I http://video.shanbo-rig.com/ curl -I https://video.shanbo-rig.com/
域名站点配置:/www/server/panel/vhost/nginx/video.shanbo-rig.com.conf。旧 webrtc-video.conf 仅保留 IP,不重复绑定正式域名。证书由宝塔管理,不要用其他配置模板覆盖现有站点。
接下来可用两台设备打开正式入口,允许各自浏览器的媒体权限,测试摄像头、麦克风与屏幕共享。严格 NAT 网络下可能仍需 TURN。
05 · 截图记录
服务器 14 项冒烟测试全部通过;公网首页、教程、PeerJS ID 接口返回 200,两个客户端的聊天消息收发及两条 WebSocket 信令检查通过。以下为实际部署截图,不包含密码或密钥。





