系统概览
app接入除了接入restApi(push-admin)之外,还需要兼容connector(push-admin的client,用于和push-server通信)的通信协议。
基于protostuff编解码,协议定义参考PushRequest.java/PushResponse.java。
推送:只有下行消息(服务端到app)
IM:分上下行消息(app到服务端再到app)
演示
1.创建开发者账号
2.创建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再基于好友/群组关系路由到各个对端应用)。