centrifugo:语言无关的可扩展的实时消息传递服务器,golang实现
Centrifugo是一个开源可扩展的实时消息传递服务器。Centrifugo可以立即向通过支持的传输(WebSocket,HTTP-streaming,SSE / EventSource,GRPC,SockJS,WebTransport)连接的应用程序在线用户发送消息。Centrifugo具有频道订阅的概念 - 因此它是一个面向用户的PUB / SUB服务器。
Centrifugo 与语言无关,可用于构建聊天应用程序、实时评论、多人游戏、实时数据可视化、协作工具等。与任何后端结合使用。它非常适合现代架构,并允许将业务逻辑与实时传输层分离。
几个用于浏览器和移动开发的官方客户端 SDK 包装了双向协议。此外,Centrifugo 支持单向方法,适用于没有 SDK 依赖性的简单用例。
文档
加入社区
为什么选择Centrifugo
Centrifugo 的核心思想很简单——它是基于现代实时传输的 PUB/SUB 服务器:

实现PUB/SUB 服务器的困难的部分是使这个概念生产就绪、高效、灵活,并且可以在不同的应用程序环境中使用。Centrifugo 是一个成熟的解决方案,已经帮助许多项目添加实时功能并扩展到许多并发连接。Centrifugo提供了该领域其他开源解决方案所不具备的一组功能:
- 实时传输:WebSocket,HTTP-streaming,Server-Sent Events (SSE),GRPC,SockJS,WebTransport
- 内置可扩展性,可与Redis,KeyDB,Nats,Tarantool的许多机器
- 简单的HTTP和GRPC服务器API,用于从应用程序后端与Centrifugo进行通信
- 灵活的连接身份验证机制:JWT 和类似代理
- 通过单个连接进行通道订阅多路复用
- 不同类型的订阅:客户端和服务器端
- 各种通道权限策略,通道命名空间概念
- 频道中的热消息历史记录,重新连接时自动恢复消息
- 在线频道状态信息,包括加入/离开通知
- 一种通过实时连接向后端发送 RPC 调用的方法
- 由多个官方SDK包装的严格有效的客户端协议
- JSON 和二进制 Protobuf 消息传输,具有优化的序列化
- 漂亮的嵌入式管理网页用户界面
- 还有更多内容,请访问Centrifugo文档网站
版权声明:本文《centrifugo:语言无关的可扩展的实时消息传递服务器,golang实现》为「linux名库」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。联系方式osschina@qq.com