Skip to content
dalei.uk
Go back

私密协作:基于Jitsi 的云端会议室全栈实战

⚡CloudRoom

零成本私密协作:全栈开发实战记录

在当今的云原生时代,如何以最低的成本(甚至零成本)搭建一个全球可访问、抗审查且带有端到端加密性质的多媒体协作空间?本项目彻底抛弃了传统的 VPS 运维与隧道代理,通过 Serverless 生态 与开源音视频引擎的结合,给出了一份优雅且硬核的极客答卷。

一、 技术栈方案

前端 (UI & 交互): 原生 HTML/Vanilla JS 驱动,摒弃繁重的框架。采用 Tailwind CSS 构建现代化 UI。

音视频底座: 接入全球顶级的开源 WebRTC 平台 Jitsi Meet External API,实现 P2P 零延迟多端音视频流。

后端 (Serverless): Pages Functions,提供处理 RESTful API 请求的无状态网关。

数据库: (Serverless SQLite built on durable objects),完美支撑消息的持久化与高并发读写。

CI/CD: GitHub Actions 自动化流水线,代码推送即发布。

设计风格: 极客暗黑风 (Dark Slate Theme),强调信息的层级感、毛玻璃质感 (Backdrop Blur) 以及沉浸式的模态交互。

二、 核心功能实现

1. 双轨制加密房间鉴权

系统不仅支持公开的广场闲聊,更引入了基于 rooms 和 messages 双表的强关联结构设计:

鉴权拦截: 当用户创建或进入私密房间时, 边缘节点会进行实时密码校验,未授权请求直接返回 401 Unauthorized 并在前端切断连接。

视频流隔离: 将房间名与密码组合进行哈希计算 (btoa(room+pwd)),生成独一无二的 Jitsi 视频流接入点,即使房间名泄露,外人没有密码也绝对无法串频。

2. 沉浸式 UI 与定制化模态弹窗

为了追求极致的 Web App 体验,我们彻底移除了丑陋的浏览器原生 prompt 和 confirm 弹窗:

全局毛玻璃遮罩: 无论是首次进入房间、修改个人昵称,还是退出房间时的二次确认,均采用 Tailwind 的 absolute inset-0 结合 backdrop-blur-sm 打造自定义模态层。

视觉聚焦: 弹窗弹出时底部的聊天与视频界面会自动虚化,配合流畅的显隐过渡动画 (transition-opacity),让用户的视觉与操作焦点始终集中在当前任务上。

3. 全自动化 CI/CD 数据库迁移

抛弃手动建库的繁琐,将数据库结构管理也纳入代码版本控制中:

Wrangler 整合: 通过在 GitHub Actions 中引入 /wrangler-action,每次检测到主分支有新代码推送时,机器人会自动连接云端环境。

智能建表: 执行sql 进行增量同步。包含性能优化索引 (CREATE INDEX) 的 SQL 语句会自动创建所需数据结构,实现真正意义上的“代码提交,全自动秒级上线”。

私密协作:基于Jitsi 的云端会议室全栈实战



Previous Post
Dclock: 极限压缩的无感常驻桌面时钟
Next Post
极简云端记账:基于 Jetpack Compose 与 Cloudflare D1 的全栈实战