SyncWatch同步观影

从报错文字,走到可验证的修复

不要一看到错误就重装。先记录版本、平台、启动方式、完整错误、发生时间和网络类型,再沿“进程 → 本机 → 网络 → 权限 → 数据”逐层排查。每次只改一个变量,修复后用原操作重新验证。

DIAGNOSTIC / v2.2.0
保存现场version / platform / time
检查本机process / port / data
检查连接http / socket / dns
核对权限account / room / policy
复测与收尾retry / verify / redact

先判断问题在哪一层

选择最接近的现象,右侧会给出第一轮三步检查。它不会替代下面的完整说明,但能避免从错误方向开始。

完整错误处理手册

每项都按“先确认 → 再修复 → 最后验证”展开。命令只用于定位,不要删除不认识的进程、数据目录或备份。

启动与运行环境

未找到内置 cloudflared完整版 / vendor / 校验

完整服务器包应包含 vendor/cloudflared.exe。体验版或源码压缩包可能不含该文件。

处理步骤

  1. 先确认下载文件名属于“完整版”,不要把 GitHub 自动生成的 Source code zip 当安装包。
  2. 在“服务器设置 → 公网访问”点击修复 cloudflared,让程序从 Cloudflare 官方 Release 下载并校验 SHA-256。
  3. 杀毒软件隔离过文件时,从 Release 重新下载并核对哈希;不要使用第三方网盘中的替换版。
  4. 修复后先运行版本检查,再重新开启临时公网地址。
.\vendor\cloudflared.exe --version
端口已被占用 / EADDRINUSEprocess / port

通常是旧服务仍在运行,或其他程序已经监听同一端口。

  1. 关闭所有 SyncWatch 窗口并在任务管理器确认旧进程已退出。
  2. 用下面命令查找监听 5000 端口的 PID。
  3. 确认进程身份后关闭它,或在服务器设置改用未占用端口。
  4. 重启后重新复制局域网地址,旧端口链接不再有效。
netstat -ano | findstr :5000
Node.js、npm 或依赖安装失败source / npm ci

源码部署需要 Node.js 22+,推荐 Node.js 24 LTS。普通用户下载 Release 成品不需要单独安装 Node.js。

  1. 重新打开终端,确认 nodenpm 都能执行。
  2. 确认当前目录是仓库根目录并存在 package-lock.json
  3. 执行 npm ci,不要把其他 Node 版本生成的 node_modules 复制进来。
  4. 依赖成功后执行 npm run test:repo,再启动服务。
node --version && npm --version && npm ci

登录、房间与权限

页面能打开但登录失败token / password / room
  1. 确认页面地址仍指向当前服务器和端口。
  2. 首次账号为 admin / admin888,登录后必须立即修改。
  3. 提示令牌过期时退出并重新登录,不要复制旧 Cookie。
  4. 日志中心检查是密码错误、账号禁用、设备限制还是服务器时间异常。
成员无法加入房间room / firewall / websocket
  1. 确认房主服务仍运行,房间号大小写和密码完全一致。
  2. 局域网先检查 Windows 防火墙是否允许当前网络类型。
  3. 公网连接确认 HTTPS 地址没有过期,WebSocket 没有被代理拦截。
  4. 管理员查看日志,区分房间不存在、权限拒绝、Origin/Host 拦截或令牌过期。
按钮消失或提示无权限permission / role

按钮可见性来自服务端返回的角色与权限,不是浏览器渲染故障。

  1. 确认当前登录账号和当前房间。
  2. 在“成员与权限组”核对权限组、房主状态和临时控制权。
  3. 保存权限后让成员重新连接并复测。
  4. 不要修改浏览器脚本绕过按钮,服务端仍会拒绝未授权操作。

上传、媒体与同步

上传卡住或审核后看不到disk / approval / processing
  1. 检查磁盘剩余空间、单文件大小和上传时长策略。
  2. 确认上传者有权限,文件仍位于 uploads/
  3. 开启审核时需要管理员点击“批准上传”。
  4. 日志中依次确认 upload、media-processing、approval 事件。
视频黑屏、无声或无法播放codec / ffprobe / ffmpeg
  1. 先在服务器本机播放原片,排除损坏文件。
  2. 等待 FFprobe 完成分析,确认视频、音频轨道和时长。
  3. 浏览器不支持 HEVC 或特殊音轨时,让 FFmpeg 生成兼容版并切换播放源。
  4. DRM 保护、损坏或无授权内容不能由 SyncWatch 自动修复。
成员不同步或进度反复跳回authority / latency / buffer
  1. 房主先暂停,等待所有成员连接和缓冲稳定。
  2. 从当前播放队列重新选择媒体,不要让多人同时拖动。
  3. 检查浏览器后台节流、设备性能和网络延迟。
  4. 服务器是权威时钟;确认日志中没有重复房主或频繁重连。

桌面、Android 与公网

Cloudflare 临时地址接口连接超时dns / vpn / 7844
  1. 先打开 http://127.0.0.1:5000,本机失败时不要继续查 Tunnel。
  2. 运行“网络诊断与修复”,查看 DNS、系统代理、网卡绑定和 Cloudflare 边缘连接。
  3. 允许 TCP 443、TCP/UDP 7844 出站;VPN/TUN 使用 Fake-IP 时把 cloudflared 和 Cloudflare 域名设为直连。
  4. 临时地址仍失败时改用自有 HTTPS 反向代理或稳定 Tunnel,不要反复重启导致日志被覆盖。
Android 手机服务器启动不了apk / foreground / battery
  1. 确认安装的是包含 Node.js Mobile 的完整 APK。
  2. 允许通知、前台服务、网络和文件访问权限。
  3. 检查端口冲突,并把 SyncWatch 电池策略设为“不限制”。
  4. 锁屏后确认前台服务通知仍存在,再从同一 Wi-Fi 设备访问。
Windows 或 macOS 阻止应用打开hash / gatekeeper / firewall
  1. 只从本仓库 GitHub Release 下载,并核对 SHA-256。
  2. Windows 首次运行只允许实际使用的网络类型通过防火墙。
  3. macOS 在“系统设置 → 隐私与安全性”允许已阻止应用。
  4. 屏幕共享、麦克风和摄像头权限需按功能单独授权。

邮件、备份与安全收尾

SMTP 测试邮件失败host / tls / auth code
  1. 按服务商文档填写 SMTP 主机、端口和 TLS。
  2. QQ 等邮箱使用应用专用授权码,不是网页登录密码。
  3. 保存后向自己的测试邮箱发送,并查看邮件日志。
  4. 授权码出现在日志或截图中时立即撤销并重新生成。
恢复后缺少媒体、聊天或密钥scope / data directory
  1. 先停止服务器并复制当前完整 Data 目录。
  2. 只导入 config.json 不等于完整恢复;选择包含媒体的二进制备份或完整目录。
  3. 检查 uploads/secrets/、聊天、缩略图和媒体索引。
  4. 启动后分别验证登录、房间、媒体和公网配置。
提交 Issue 前必须脱敏:删除真实姓名、私人邮箱、内外网 IP、管理员密码、SMTP 授权码、Tunnel 令牌、房间邀请链接、媒体文件名和聊天内容。安全问题请按仓库 SECURITY.md 私密报告。