基于 uWebSockets.js 的聊天服务器,提供区别于 XMPP 的消息协议方案,使用 Node.js、MongoDB 和 Redis。
- Star
- 10,951
- Fork
- 754
- 未关闭 Issue
- 25
- 最近提交
- 昨天
这是什么?
Centrifugo 是一个开源的可扩展实时消息服务器,可通过 WebSocket、HTTP-streaming、Server-Sent Events、GRPC 和 WebTransport 把消息即时推送给在线用户。它以面向用户的 PUB/SUB 方式工作:客户端订阅频道,后端通过 HTTP 或 GRPC API 向频道发布消息。
由于不依赖后端语言,Centrifugo 可以把实时推送与业务逻辑分离。官方客户端 SDK 覆盖 JavaScript、Dart/Flutter、Swift、Java、Python、Go 和 .NET;简单场景下也可以不用 SDK,直接使用对应传输协议的标准客户端。
横向扩展可基于 Redis(包括 Redis Cluster 及兼容存储)、PostgreSQL 或 NATS 实现。项目还提供频道历史消息与断线重连后的消息恢复、在线状态与加入/离开通知、JWT 或代理式认证、增量压缩、Prometheus 指标以及内置管理界面。
核心功能
- 01支持 WebSocket、SSE、HTTP-streaming、GRPC 和 WebTransport(实验性)等传输方式。
- 02可基于 Redis、Redis Cluster、PostgreSQL 或 NATS 实现横向扩展。
- 03通过简单的 HTTP 或 GRPC 服务端 API 向频道发布消息。
- 04支持频道历史消息,断线重连后自动恢复。
- 05提供频道在线状态以及加入/离开通知。
- 06支持 JWT 和代理式连接认证。
- 07暴露 Prometheus 指标,并内置管理后台界面。
适用场景
- 在 Web 或移动应用中实现聊天和即时通讯功能。
- 向浏览器推送实时评论、通知或数据更新。
- 将 AI 模型的流式回复实时传送给用户。
- 为需要低延迟同步的多人游戏或协作工具提供实时通道。
快速上手
- 1
使用 Docker 运行 Centrifugo 及其内置管理界面
docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure - 2
打开 http://localhost:8000 访问管理界面
- 3
参阅安装说明,获取原生二进制、Homebrew、软件包及生产环境配置
使用前须知
- 快速开始使用的不安全参数会移除身份验证,切勿用于生产环境。
- WebTransport 支持尚处于实验阶段。
收录于专题
标签
常见问题
- centrifugo 是什么?
- 可自托管、与语言无关的实时发布订阅消息服务器,通过 WebSocket、SSE 等协议向在线用户推送消息。 Centrifugo 是一个开源的可扩展实时消息服务器,可通过 WebSocket、HTTP-streaming、Server-Sent Events、GRPC 和 WebTransport 把消息即时推送给在线用户。它以面向用户的 PUB/SUB 方式工作:客户端订阅频道,后端通过 HTTP 或 GRPC API 向频道发布消息。
- centrifugo 可以免费使用吗?用的什么许可证?
- centrifugo 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- centrifugo 还在维护吗?
- 活跃维护中。centrifugo 最近一次提交是在 2026年11月6日。
- centrifugo 适合用来做什么?
- 在 Web 或移动应用中实现聊天和即时通讯功能。 向浏览器推送实时评论、通知或数据更新。 将 AI 模型的流式回复实时传送给用户。 为需要低延迟同步的多人游戏或协作工具提供实时通道。
- centrifugo 怎么安装和运行?
- 使用 Docker 运行 Centrifugo 及其内置管理界面: docker run -it --rm -p 8000:8000 centrifugo/centrifugo:latest centrifugo --client.insecure --admin.enabled --admin.insecure 打开 http://localhost:8000 访问管理界面 参阅安装说明,获取原生二进制、Homebrew、软件包及生产环境配置
- 在哪里获取 centrifugo?
- 源代码和安装说明在 GitHub 上:https://github.com/centrifugal/centrifugo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为 Laravel 应用添加实时聊天功能的扩展包,内置私聊、群聊和messenger界面。
用于通过 Pusher Channels HTTP API 发送事件、鉴权用户和查询频道的 PHP 库。
可自托管的实时语音转文字服务,支持流式识别、说话人分离、同声翻译,并兼容 OpenAI 与 Deepgram API。
一份整理了公开与付费实时数据源的清单,涵盖金融、交通、天气、新闻与网络安全等领域。
开源实时通信服务器,为现有后端提供可靠的 WebSocket 与 SSE 双向通信。