Centrifugo 是一個用 Golang 實現(xiàn)的基于 Websocket 或者 SockJS 的實時通信平臺砸烦。
提供基于頻道的發(fā)布/訂閱(PUB/SUB)模式糜芳。
容易和現(xiàn)有系統(tǒng)集成– 不改變已有后端情況下為系統(tǒng)提供實時通信能力蹈集。
HTTP API 和已有后端通信 . API clients for Python, Ruby, PHP, Go, NodeJS。
瀏覽器可以通過SockJS或者純粹Websocket協(xié)議和centrifugal通信尺栖。 提供 iOS和Android平臺SDK碳胳。
采用Redis實現(xiàn)分布式部署,也支持使用Memory引擎單機簡單部署弄企。
SHA-256 HMAC連接認證和隱私保護超燃。
多種類型的頻道 – 私有, 用戶限制,客戶端限制拘领。
通過名字空間靈活配置頻道意乓。
支持即時消息和歷史消息。
支持用戶加入/離開消息约素。
網(wǎng)絡(luò)重連后可以恢復(fù)消息届良。
內(nèi)置管理界面,提供多種計量(Metrics)圣猎。
可用于WebRTC信令服務(wù)器士葫。
多種部署手段(docker 鏡像, RPM/DEB 包, Nginx 配置, TLS certificates)。
MIT license送悔。
基本運行框架:
? Centrifugo 作為獨立服務(wù)器運行慢显,可以處理來自應(yīng)用程序用戶的持久連接。應(yīng)用的前端和后端可以基于任何語言進行開發(fā)欠啤。你的客戶端使用應(yīng)用程序后端提供的令牌(Token JWT)連接到 Centrifugo荚藻,并訂閱頻道(Channel)。當有事件發(fā)生時洁段,后端應(yīng)用可以使用 Centrifugo 的 API 發(fā)布消息到相關(guān) Channel应狱。隨后,消息會被投遞到所有訂閱本 Channel 的客戶端祠丝。