持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
centrifugo是与语言无关的可扩展实时消息服务器。centrifugo与任何编程语言编写的应用程序后端一起工作。 作为一个独立的服务运行,并通过几种受支持的传输类型(WebSocket, SockJS,EventSource, GRPC, HTTP-streaming)与应用程序客户端建立持久连接。 当需要向你的客户端实时交付一个事件时,将消息发布到centrifugo服务器API,然后centrifugo将事件广播给所有对这个事件感兴趣的连接客户端(客户端订阅了事件通道)。 换句话说,centrifugo是一个面向用户的发布/订阅服务器。
centrifugo包含以下特性:
- centrifugo能够拓展并维持数百万连接
- 与任何应用程序的简单集成-作为单独的服务工作
- 简单服务器API (HTTP或GRPC)
- 丰富的客户端库
- 基于JSON和二进制的基于严格模式的Protobuf Websocket客户端协议
- 使用JWT或通过连接请求代理对配置的HTTP端点进行用户身份验证
- 正确的连接管理和超时控制
- 各种类型的通道:私有的,用户限制的
- 各种类型的订阅:客户端或服务器端
- 通过WebSocket/SockJS转换RPC调用
- 通道的状态信息(显示通道中的所有活动客户端)
- 通道的历史信息(发布到通道的最后消息)
- 通道加入/离开事件(客户端上线/下线)
- 自动恢复客户端重连期间,错过的消息
- 内置网页管理面板
安装
查看centrifugo的版本
./centrifugo version
centrifugo需要一个带有几个密钥的配置文件。 使用genconfig命令,会生成一个最小的配置文件
./centrifugo genconfig
使用配置文件可以启动centrifugo
./centrifugo --config=config.json
使用
首先需要安装centrifugo。安装了centrifugo之后,可以用下面的命令生成所需的配置文件:
./centrifugo genconfig
该命令将生成配置Json文件,内容如下:
{
"token_hmac_secret_key": "46b38493-147e-4e3f-86e0-dc5ec54f5133",
"admin_password": "ad0dff75-3131-4a02-8d64-9279b4f1c57b",
"admin_secret": "583bc4b7-0fa5-4c4a-8566-16d3ce4ad401",
"api_key": "aaaf202f-b5f8-4b34-bf88-f6c03a1ecda6",
"allowed_origins": []
}
添加"admin": true选项到JSON配置文件,可以开启admin web panel,访问8000端口,输入设置的admin_password,登录该服务。
在admin面板中,可以发布订阅channel以及其他功能。