Centrifugo 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Centrifugo 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Centrifugo 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Centrifugo 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Centrifugo 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

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 开发

展开阅读全文

代码

评论 (12)

加载中
打分: 力荐
看起来不错
2018/11/15 11:06
回复
举报
打分: 还行
感觉很强大,但使用的人好少,网上相关中文资料很少
2018/06/01 15:32
回复
举报
有木有人用它做过项目。。。。
2017/10/28 21:26
回复
举报
打分: 力荐
hi,各位go语言爱好者 Beego axtaxie谢大和好雨云社区一起推出了beego开发者大赛,使用Beego框架进行开发,作品种类、大小、形式不限,可以尽情发挥你天马行空的想象力,还有各种礼品等你来拿,期待大家踊跃参赛,https://t.goodrain.com/t/beego/297
2017/04/20 10:42
回复
举报
Marker #Centrifugo#
2017/02/20 09:30
回复
举报
现在客户端好难用,分享不行,收藏加载不了 #Centrifugo#
2017/02/19 21:13
回复
举报
数千个??case me ?
2017/02/13 15:46
回复
举报
打分: 力荐
支持数千个同时连接?你用的是假golang吧!
2017/02/13 15:11
回复
举报
打分: 力荐
并发才几千个?这个也太少了吧。
2017/02/13 11:02
回复
举报
打分: 力荐
很好,以后可以用一下
2017/02/13 09:28
回复
举报
更多评论
暂无内容
发表了博客
2020/09/11 15:21

Discrete Centrifugal Jumps(单调栈+dp)

https://codeforces.com/contest/1407/problem/D 首先定义dp[i]:当前共有i栋楼表示到第i栋楼的最小步数。 根据条件有如下转移: 1.dp[i]=dp[i-1]+1; 2.i前面有一个下标假设为j,且这个j满足(a[j]>max(a[j+1]......,a[i-1]); dp[i]=dp[j]+1; 3.i前面有一个下标假设为j,且这个j满足(a[j]<min(a[j+1].......a[i-1]);dp[i]=dp[j]+1; 那么找这个j的过程用单调栈优化。 具体是什么意思呢? 比如现在有 h[i]:4 3 2 5 这样的楼高度 i : ...

0
0
发表了博客
2020/09/11 13:02

CodeForces - 1407D Discrete Centrifugal Jumps(单调栈+dp)

题目链接:点击查看 题目大意:给出 n 个大楼的高度记为 h,现在需要从第一个大楼到达第 n 个大楼,问最小步数是多少,只有满足以下条件时才能从 i 移动到 j ,设 i < j: 题目分析:无后效性的最优解,显然是 dp 问题,但又不好直接进行转移,所以需要借助数据结构来维护 首先第一种情况的状态不用多说了,直接转移就好,对于后两种情况,假设从状态 dp[ i ] 转移到 dp[ j ] ,对于每个接受状态的 j 来说,需要找到一个 i ,满...

0
0
2018/04/12 20:02

IM推送服务端:Centrifugo

Centrifugo :golang开发的即时推送服务。 文档:https://fzambia.gitbooks.io/centrifugal/content/index.html (ps:比较大的图片需要拖拽到独立的页签打开) 复制点oschina以前发的介绍: Centrifugo 是一个用 Golang 实现的基于 Websocket 或者 SockJS 的实时通信平台。 支持数千个同时连接,提供基于频道的出版/订阅模式。PUB/SUB 容易和现有系统集成– 不改变已有后端情况下为系统提供实时通信能力。 HTTP API 和已有后端通...

0
0
发表了博客
2019/04/09 20:14

Centrifugo简单试用

今天尝试用 centrifugo 来做一个在聊天室,以前用workerman做过,相对来说 workerman的配置就显得复杂多了,需要自己搭建PHP环境, 而 centrifugo 就清爽多了,官网下载二进制单文件直接运行,得益于go语言,centrifugo 的性能应该是大于workerman的, 但也得提醒一下,从github上看centrifugo是 2018年底才开始的,目前还在快速更新中,稳定性有一定风险。 测试系统: Debian 9 下载二进制文件: https://github.com/centrifug...

0
0
发表了博客
2019/08/17 10:46

Centrifugo  语言无关的实时消息服务

Centrifugo 语言无关的实时消息服务,基于golang编写,提供了websocket 以及sockjs 的兼容处理,使用上很简单 同时也支持基于redis的扩展,以下是一个简单的运行测试 环境准备 docker-compose 文件 version: "3" services: centrifugal: image: centrifugo/centrifugo command: centrifugo -c config.json --engine=redis --redis_host=redis --redis_port=6379 ports: - "8000:8000" volumes: - "....

0
0
发表了博客
2018/01/23 13:59

Install Centrifugo and quick start

Install Centrifugo and quick start Go is a perfect language - it gives developers an opportunity to have single binary executable file for application and cross-compile application on all target operating systems for distribution. This means that all you need to get Centrifugo - download latest release for you operating system, unpack it and you are done! Now you can see help information for Ce...

0
0
发表了博客
2013/07/25 17:14

Types of computer controlled liquid filling mac...

A dishwasher, classification of many people. Another way of thinking, certainly, the state, divided by the product of several folded, liquid, solid, granular pillow type food packing machine, powder filling machine, through the role of sub-package, packaging, packaging machinery industry is the outsourcing of a package split, It is not food, daily chemical, textile, dishwasher, sub-station pack...

0
0
发表了博客
2018/03/30 17:45

websocket使用ssl 证书,开启加密服务

参考文章:https://fzambia.gitbooks.io/centrifugal/content/deploy/certificates.html TLS certificates TLS/SSL layer is very important not only for securing your connections but also to increase a chance to establish Websocket connection. In most situations you will put TLS termination task on your reverse proxy/load balancing software such as Nginx. There are situations though when you want to se...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
12 评论
276 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部