消息推送与同步协议的思考
2018-09-03 16:55
232 查看
同步状态和消息推送,几乎是每个app或者设备都需要的,设计一个省流量,能简化两端逻辑,能应对业务增长的框架尤为重要。
我认为,以下方法不够好:
1.每一个状态都设计一个消息,导致每增加一个状态,服务端都需要改动。
2.每次上线后都请求一次所有类型的最新的消息。
3.最新的消息只推送一次就完事。
第一个缺点已经说了,解决的方法是设计一个通用的消息结构和存储模型,集存储、转发、推送于一身。
第二个方法,一个是消息太多,不可能每个都有更新,所以没必要每次都请求。而发送的请求带来没必要带宽的浪费和处理的压力,尤其在移动互联网情况下,掉线太多,浪费的带宽和cpu也是成倍增加。
解决方法,类似日志式的方法,设备的每次变化都对应一个日志,让设备依次重放每个日志,如果状态具有唯一性,那么可以删除这个状态旧的日志,保留新的日志。
第三个问题,在完成日志式的改造后,让每个日志对应一个数字,日志越新,数字越大,设备或者app只需要请求更新的日志即可。推送不再丢失消息,也不会重复消息。
另外,考虑到日志太多,可能会导致同步缓慢,所以应该将日志分类,将一些紧急的状态变化分为一类,将一些不是很重要的消息,又分为一类,这时候存在两份不同的日志序列,按需请求即可。
相关文章推荐
- 消息推送与同步协议的思考
- 采用MQTT协议实现Android消息推送
- SignalR web实时同步 消息推送 广播
- 自定义协议消息推送开源项目-CIM
- Android消息推送(二)--基于MQTT协议实现的推送功能
- Zookeeper系列(5)--ZAB协议,消息广播,崩溃恢复,数据同步
- RocketMQ源码分析之Broker概述与同步消息发送原理与高可用设计及思考
- 基于MQTT协议推送Android消息
- SqlDependency数据库同步+signalr 推送消息
- OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法
- 关于MQTT协议实现消息推送系统
- 物联网核心协议—消息推送技术演进
- Android消息推送(二)--基于MQTT协议实现的推送功能
- PHP+ANDROID做消息推送:基于IBM的MQTT协议的Tokudu项目测试
- 物联网核心协议—消息推送技术演进
- 基于BT协议的同步方式的思考
- 采用MQTT协议实现Android消息推送
- 采用MQTT协议实现Android消息推送
- PHP+ANDROID做消息推送:基于IBM的MQTT协议的Tokudu项目测试
- (转)采用MQTT协议实现Android消息推送