Skip to the content.

← 返回首页

WebRTC 开发路线图

本文件用于规划和记录本仓库(WebRTC)的学习向开发计划与 TODO 列表。

定位: 本项目是一个基于 Go 的最小可用 WebRTC 示例项目,仅用于本地 Demo 和自我学习,不面向生产环境。


1. 项目定位与当前状态


2. 开发阶段总览

为方便逐步学习,将开发拆成若干阶段,你可以按顺序推进,也可以根据兴趣跳读:

  1. 阶段 1:打磨一对一 Demo 体验
    提升现有一对一通话 Demo 的体验与可读性,增加错误处理和状态展示。

  2. 阶段 2:学习更多 WebRTC 能力(可选,偏前端)
    在当前一对一基础上增加静音/摄像头开关、屏幕共享、DataChannel 聊天、本地录制等能力。

  3. 阶段 3:房间与小规模多人通话(进阶)
    引入房间成员列表和简单的 Mesh 多人通话,理解多人场景下连接数量和复杂度。

  4. 阶段 4:可选扩展(部署与网络)
    简单尝试 TURN/HTTPS 和 Docker 打包,理解在不同网络环境下如何让 Demo 跑起来。


3. 阶段 1:打磨一对一 Demo 体验

目标:在不增加太多复杂度的前提下,让现有的一对一 Demo 更稳定、更易懂、更好用。

3.1 后端(Go 信令服务)

3.2 前端(web/app.js + web/index.html)


4. 阶段 2:学习更多 WebRTC 能力(可选)

目标:在不改动后端结构的前提下,通过前端尝试更多 WebRTC API,理解媒体轨道、屏幕共享、数据通道和录制。

4.1 媒体控制:静音与关闭摄像头

4.2 屏幕共享

4.3 DataChannel 文本聊天

4.4 本地录制(MediaRecorder)


5. 阶段 3:房间与小规模多人通话(进阶)

目标:理解多人房间的基本概念和复杂度,在 Demo 级别尝试 3–4 人的小房间。

5.1 房间成员列表

5.2 小规模 Mesh 多人通话(可选,难度稍高)

提示:


6. 阶段 4:可选扩展(部署与网络)

目标:在保持 Demo 定位的前提下,理解 TURN/HTTPS 和 Docker 打包的基本概念,方便在不同机器上演示。


7. 建议的实践顺序

如果你希望有一个推荐顺序,可以参考:

  1. 优先完成阶段 1
    • 让当前一对一 Demo 更稳定、可读,便于后面继续扩展。
  2. 按兴趣选择阶段 2 的能力点
    • 对媒体流和 UI 感兴趣:先做静音/摄像头/屏幕共享。
    • 对数据传输感兴趣:优先做 DataChannel 聊天。
  3. 有精力再尝试阶段 3
    • 从“房间成员列表”开始,再尝试小规模 Mesh 多人通话。
  4. 阶段 4 完全可选
    • 仅在需要在局域网/公网演示时,才考虑 TURN/HTTPS 和 Docker。