1 Star 0 Fork 19

药豪 / hanbo-push

forked from lucas / hanbo-push 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

故事背景

最近看到一篇关于百万级推送架构的介绍,正好解决了之前一直想做但没有做的难题,于是乎在工作空闲之余手撸了一遍。项目源码请移步这里

系统概览

app接入除了接入restApi(push-admin)之外,还需要兼容connector(push-admin的client,用于和push-server通信)的通信协议。

基于protostuff编解码,协议定义参考PushRequest.java/PushResponse.java。

推送:只有下行消息(服务端到app)

IM:分上下行消息(app到服务端再到app)

演示

1.创建开发者账号

注册开发者账号

2.创建app

创建app

APP设备注册

APP鉴权

推送:鉴权成功后拿到真实的推送服务ip地址,然后建立长连接并发起注册请求,后续等待后台推送消息即可。

IM:同上述流程,只不过前提需要建立好友、群组等关系,ok后就可以发起聊天了。

3.选择APP,点击发布消息

消息列表

发布消息

4.admin收到推送指令,下发给所有当前app关联的设备id

6.推送服务收到admin转发的推送指令,依次下发到注册设备的长连接上

7.客户端收到来自管理员的推送消息

架构图

app为移动设备,3rdparty为三方服务(一般时服务端)。

模块讲解

restApi(admin),开放给三方的功能接口。

开发者注册

app设备鉴权

好友管理

群组管理

推送管理

connector

连接pushServer的桥梁,内置在pushAdmin

自动发现服务
一致性hash路由

客户端故障转移

router

维护用户和连接的映射

维护用户和服务的映射

pushServer

注册连接

推送消息

路由转发

webProxy

对connector做了一层封装,暴露websocket协议

推送流程

IM流程大致同推送流程,只不过多了一层上行消息(通过restApi发布消息,pushServer再基于好友/群组关系路由到各个对端应用)。

空文件

简介

分布式消息推送、IM服务 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/gandilong/hanbo-push.git
git@gitee.com:gandilong/hanbo-push.git
gandilong
hanbo-push
hanbo-push
master

搜索帮助