Centrifugo - 实时消息通信平台


MIT
跨平台
Google Go

软件简介

Centrifugo 是一个用 Golang 实现的基于 Websocket
或者 SockJS 的实时通信平台。

  • 支持数千个同时连接,提供基于频道的出版/订阅模式。PUB/SUB

  • 容易和现有系统集成– 不改变已有后端情况下为系统提供实时通信能力。

  • HTTP API 和已有后端通信 . API clients for Python, Ruby, PHP, Go, NodeJS.

  • 浏览器可以通过SockJS或者纯粹Websocket协议和centrifugal通信. 提供 iOS和Android平台SDK

  • 采用Redis实现分布式部署.

  • SHA-256 HMAC连接认证和隐私保护

  • 多种类型的频道 – 私有, 用户限制,客户端限制

  • 通过名字空间灵活配置频道

  • 支持即时消息和历史消息

  • 支持用户加入/离开消息

  • 网络重连后可以恢复消息

  • 内置管理界面,提供多种计量(Metrics)

  • 可用于WebRTC信令服务器

  • 多种部署手段(docker 镜像, RPM/DEB 包, Nginx 配置, TLS certificates)

  • MIT license

通讯模型:

Centrifugo 包含如下子项目:

  • centrifugo - 采用 Go 语言开发的实时消息传递服务器

  • centrifuge-js - Javascript 客户端,可直接在浏览器使用

  • centrifuge-android - Android 的客户端开发包,可通过 WebSockets 与服务器通讯

  • centrifuge-ios - Swift 开发包

  • centrifuge-go - Go 客户端开发包

  • cent - Python 开发包

  • adjacent - Cent 的小型封装包,简化了与 Django 框架的集成

  • rubycent - Ruby gem to communicate with Centrifugo server API.

  • phpcent - PHP client to communicate with Centrifugo server API.

  • gocent - Go client to communicate with Centrifugo server API.

  • jscent - NodeJS client to communicate with Centrifugo server API.

  • web - Centrifugo 的管理界面,基于 ReactJS 开发