基于 Go 的开源 WebRTC SFU 服务器,用于实时音视频与数据传输,连接人与 AI 智能体。
dmotz/trystero
一个 JavaScript 库,让浏览器无需自建服务器即可通过 WebRTC 直接点对点通信,用于构建多人网页应用。
- Star
- 2,796
- Fork
- 161
- 未关闭 Issue
- 7
- 最近提交
- 前天
这是什么?
Trystero 解决了 WebRTC 建立连接前必须完成的配对问题。浏览器通过房间 ID 加入房间,并借助信令通道互相发现,信令可选 Nostr(默认)、BitTorrent、MQTT、IPFS、Supabase、Firebase 或自建的 WebSocket 中继。连接建立后,应用数据直接在端与端之间传输并经过端到端加密,信令通道只负责传递连接信息。
在 WebRTC 之上,它提供房间与广播、带类型的自定义消息动作、数据自动序列化与大数据分块、进度事件、请求/响应调用,以及音视频流的收发。同一套 API 可用于浏览器,也可在 Node、Bun 和 Deno 上运行,并附带 React Hooks。切换信令方式只需更换导入的包。
项目使用 TypeScript 编写,核心包以 trystero 发布到 npm,各信令策略则位于 @trystero-p2p 命名空间下。
核心功能
- 01无需服务器,可通过 Nostr、BitTorrent、MQTT、IPFS、Supabase、Firebase 或 WebSocket 中继完成配对
- 02提供房间、广播和带类型的自定义消息动作
- 03自动序列化和分块传输大数据,并提供进度事件
- 04支持在对等端之间共享音视频流
- 05可选的密码会话加密,并支持配置 TURN 服务器
- 06可在浏览器中运行,也可在 Node、Bun 和 Deno 服务端运行
适用场景
- 在不维护后端的前提下开发浏览器多人游戏
- 在用户之间搭建私密的音频或视频聊天室
- 在网页应用中让浏览器之间直接传输文件
- 在协作者之间同步光标、表单等共享状态
快速上手
- 1
使用 npm 安装 Trystero
npm i trystero - 2
在代码中导入 joinRoom
- 3
使用唯一的 appId 和房间 ID 加入房间
使用前须知
- 节点发现依赖第三方策略网络(如 Nostr、MQTT 或 Supabase),应用依赖于该网络可用。
- 浏览器能同时处理的 WebRTC 连接数量有限,因此房间应保持较小规模。
- 接收的文件必须能放入浏览器内存,且每个房间默认的接收额度为 256 MiB。
标签
常见问题
- trystero 是什么?
- 一个 JavaScript 库,让浏览器无需自建服务器即可通过 WebRTC 直接点对点通信,用于构建多人网页应用。 Trystero 解决了 WebRTC 建立连接前必须完成的配对问题。浏览器通过房间 ID 加入房间,并借助信令通道互相发现,信令可选 Nostr(默认)、BitTorrent、MQTT、IPFS、Supabase、Firebase 或自建的 WebSocket 中继。连接建立后,应用数据直接在端与端之间传输并经过端到端加密,信令通道只负责传递连接信息。
- trystero 可以免费使用吗?用的什么许可证?
- trystero 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- trystero 还在维护吗?
- 活跃维护中。trystero 最近一次提交是在 2026年10月18日。
- trystero 适合用来做什么?
- 在不维护后端的前提下开发浏览器多人游戏 在用户之间搭建私密的音频或视频聊天室 在网页应用中让浏览器之间直接传输文件 在协作者之间同步光标、表单等共享状态
- trystero 怎么安装和运行?
- 使用 npm 安装 Trystero: npm i trystero 在代码中导入 joinRoom 使用唯一的 appId 和房间 ID 加入房间
- 在哪里获取 trystero?
- 源代码和安装说明在 GitHub 上:https://github.com/dmotz/trystero
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源后端框架,在代码中声明数据库、消息队列、对象存储等基础设施,本地即可运行,并部署到自有 AWS 或 GCP 账户。
面向 Node.js 的权威式多人游戏框架,提供状态同步、基于房间的匹配以及多平台客户端 SDK。
轻量级后端,内置数据库、认证、媒体与工作流,基于 Web 标准可在多种运行时和框架中部署。
一体化 JavaScript/TypeScript 工具链,集运行时、打包器、测试运行器和包管理器于一个可执行文件。
面向网页的高性能 2D 渲染库,基于 WebGL 和 WebGPU 绘制图形、精灵与文本。