personal-website

BMPI

所属分类:技术博客与个人站

围绕软件工程、AI 产品与系统实践的长期写作实验室。

BMPI 是软件工程师与独立开发者 Dawei Ma 的长期写作站点,围绕软件工程、AI 原生产品、规则化投资和个人项目实践持续记录。技术栏目按主题汇集 Agent、WebRTC、分布式系统和工程经验文章,适合希望通过真实项目历程了解系统设计取舍的读者。

BMPI:从 WebRTC 聊天室演进看软件系统实践

发布于 2026年10月21日更新于 2026年10月27日

一个持续积累的写作实验室

首页把网站定位为长期写作实验室,并介绍作者从事软件工程、独立开发和系统化投资。文章分为学习、技术、投资和英文等入口;站点还展示策引、MinePilot、free4chat、i365、演讲和社区等项目或活动链接。首页写明文章数量为 125 篇,写作始于 2016 年,反映出这里同时保存长期学习记录和新的项目实践。

技术栏目列出 45 篇文章,内容从 Google 软件工程、编程语言并发与泛型、分布式系统延伸到 Agent、WebRTC 和 AI 原生量化系统。阅读者可以先从“技术”进入,再根据日期和标题选择内容;想了解个人学习记录或投资主题时,也能通过其他栏目切换。整体上,BMPI 将技术文章与其他写作分开,但保留统一的作者视角和项目入口。

BMPI 首页展示作者介绍与学习、技术、投资栏目

free4chat 项目经历四次架构演进

《一个 WebRTC 聊天室的四次演进》回顾作者为 free4chat 选择和更换实时通信架构的过程。文章从早期 Go 与 Pion 自建 SFU 开始,之后迁移到 Elixir 与 Membrane,再尝试 Cloudflare RealtimeKit 托管媒体能力,最后转向 Cloudflare Realtime SFU。作者说明,重写并非因为最初版本无法工作,而是项目每次遇到新的目标:理解 WebRTC、减少基础设施运维,以及探索 serverless 方式。

四个阶段体现出不同的责任边界。自建 SFU 让开发者掌握更多媒体与服务器控制权,也需要自己维护基础设施;使用托管 RealtimeKit 可以把媒体服务的一部分交给平台,但文章指出托管并不会让复杂度消失,控制权也会随之变化。之后的 Realtime SFU 阶段则尝试取回应用语义层面的控制。文章把版本顺序和选型动机都列出来,读者可以按阶段理解系统如何随着需求演进,而非只看最终技术栈。

WebRTC 聊天室文章列出架构演进阶段与技术标签

文章从产品目标开始解释技术选择:最初的想法是通过分享链接建立语音房间,不要求参与者注册账号或下载 App。随着使用和实现深入,讨论逐步扩展到实时媒体基础设施、房间参与方式以及服务边界。作者还回顾生产中遇到的托管服务事故,并在目录中安排四个版本横向对比、房间与参与者关系、共享实时转写、跨机器 Agent 协作等内容,呈现项目从即时语音工具延展出的方向。

这篇文章适合用来观察技术架构如何服务产品目标,而不只是比较框架名称。读者可以对照每一版解决的问题,了解自建与托管方案分别带来的运维责任、平台依赖和控制范围。文章还提供 WebRTC、Pion、Cloudflare RealtimeKit、Realtime SFU 和 Durable Objects 等延伸链接,便于继续查阅相关资料。具体产品能力、价格和服务状态可能变化,作出部署决定前应以服务商当前文档为准。

文章回看最初版本时提到,作者在 2022 年初把聊天室发布到 V2EX;当时使用一台 1 核、1GB 内存的 AWS 服务器,作者称它曾支撑接近千人的并发访问,负载几乎没有变化。作者还把产品动机描述为一个轻量的即时语音入口:不需要账号、不需要安装 App,通过分享链接即可邀请他人加入。这样的目标解释了为什么后续讨论不只关注媒体传输协议,也包括参与者如何进入房间、服务如何运行以及项目要承担多少基础设施。

文章按时间把重写和转向放在一起,说明每次变化都对应新问题,而不是简单追逐新技术。Go 与 Pion 的第一版让作者直接接触 WebRTC 和 SFU;转向 Elixir 与 Membrane 后,技术栈和媒体处理方式随之变化;Cloudflare RealtimeKit 阶段则把部分媒体能力交给托管服务;后续使用 Realtime SFU 时,作者希望重新取得应用语义层面的控制。文章还记录 2026 年 8 月的一次生产事故,并以此解释为什么不再让 RealtimeKit 继续承担生产职责。

对于正在设计实时应用的读者,这种按版本复盘的写法有助于把选择放回当时的约束里。自建方案会带来运维工作,但服务边界更可控;托管方案可以减少自行维护媒体基础设施的工作,却增加对供应商能力和服务稳定性的依赖。文章目录通过四版横向对比、真实使用中验证的事项以及项目不希望成为的东西等部分,引导读者同时考虑可维护性、功能范围与产品愿景,而不是只比较组件性能。

聊天室项目的主题也从语音连接扩展到共享实时转写和跨机器 Agent 协作。文章将这些内容作为后续探索方向,与原先的多人语音房间放在同一产品背景中讨论。读者可以从房间、参与者和语音链路几个层面理解项目关注点:先建立可靠的实时通信,再考虑如何让不同人或工具在同一会话中协作。页面列出的外部文档为进一步核对技术名词和服务能力提供了入口,但具体实现细节仍以对应章节和当前文档为准。

其他技术主题与阅读路径

除 free4chat 外,技术栏目还收录 AI 驱动开发、ChatGPT 应用开发、Google 软件工程实践、云原生开发、分布式系统认证授权和 Web3 等文章。近期条目也覆盖 Agent 时代的软件工程、Domain Harness 和 AI 原生量化系统。读者可以根据关心的问题从新文章开始,也可以沿着专题系列阅读较早的内容,逐步了解作者对工具、过程、架构和项目实践的记录。

BMPI 不只是某个产品的使用手册。它同时包含技术长文、学习记录和项目故事,适合寻找工程案例、产品构建思路或进一步阅读链接的访客。文章反映作者在特定项目中的判断和经历;当内容涉及云服务架构、AI 系统或投资方法时,应先区分个人实践与通用建议,再对照最新官方资料、自己的约束和真实测试作出决策。