系统概览

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




java推送消息至app java向app推送消息_推送


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

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

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


java推送消息至app java向app推送消息_java 消息推送_02


演示

1.创建开发者账号


java推送消息至app java向app推送消息_java消息推送_03


2.创建app


java推送消息至app java向app推送消息_java 消息推送_04


APP设备注册


java推送消息至app java向app推送消息_java推送消息至app_05


APP鉴权

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

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


java推送消息至app java向app推送消息_推送消息_06


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


java推送消息至app java向app推送消息_java 消息推送_07



java推送消息至app java向app推送消息_推送消息_08


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


java推送消息至app java向app推送消息_java 消息推送_09


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


java推送消息至app java向app推送消息_java消息推送_10


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


java推送消息至app java向app推送消息_推送_11


架构图

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


java推送消息至app java向app推送消息_推送消息_12


模块讲解

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

开发者注册

app设备鉴权

好友管理

群组管理

推送管理

connector

连接pushServer的桥梁,内置在pushAdmin

自动发现服务

一致性hash路由

客户端故障转移

router

维护用户和连接的映射

维护用户和服务的映射

pushServer

注册连接

推送消息

路由转发

webProxy

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

推送流程


java推送消息至app java向app推送消息_推送_13


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