消息推送协议
消息推送协议是一个解决CS/BS/APP
端实时消息推送问题的应用层文本协议,使用json
数据结构描述,它工作在websocket
上,也可以工作在websockets
上,由业务场景决定了消息推送协议由内网消息推送,外网消息推送这两大部分构成。此协议描述了以下几部分内容:消息推送服务的开启;消息推送服务的认证;推送方式的选择;内网消息推送过程;外网消息推送过程;消息推送服务的关闭;APP脏数据问题;长websocket
连接和短websocket
连接的选择。
MPS
数据推送
目前新架构下,后台向前端、客户端、安卓端推送数据时不能直接使用activemq
推送,而推荐采用mps
组件封装的websocket
实现。因为activemq
定位为后台之间数据推送工具,除openwire
外的端口都不开放。
个人理解推送实现的原理是后台向
mq
推送消息,mps
从mq
消费消费,再转发给接收方。因此后台实现的逻辑是用mps
、mpsmq
通过服务寻址找到mq
的用户名、密码、IP、端口信息,建立mq
连接,创建生产者发送消息。接收方(前端、客户端、移动端)通过服务寻址(多线路寻址方式)找到mps
组件信息,根据接收方式websocket
或友盟等建立连接,接收消息。后台向mq
发送数据时格式有一定的要求,不满足mps
可能就不转发消息了。实现方案:组件向activemq
指定topic
推送消息,mps
组件转发该消息到对应的接收端。
消息推送协议使用场景
APNs
推送:
Step1
开启消息推送:
图1.1.1 iOS APP开启APNs消息推送模式
Step2
关闭消息推送:
图1.1.2 iOS APP关闭APNs消息推送模式
-FCM
推送:
Step1
开启消息推送:
图1.2.1 android APP开启FCM消息推送模式
Step2
关闭消息推送:
图1.2.2 android APP关闭FCM消息推送模式
WebSocket
私有协议推送:
Step1
开启消息推送
Step2
推送消息(CS/BS)
图1.3.2 使用WebSocket私有协议推送消息到CS客户端
Step3
推送消息(iOS)
图1.3.3 使用WebSocket私有协议推送消息到iOS客户端
Step4
推送消息(android)