zoukankan      html  css  js  c++  java
  • 消息推送与同步协议的思考

     

    同步状态和消息推送,几乎是每个app或者设备都需要的,设计一个省流量,能简化两端逻辑,能应对业务增长的框架尤为重要。

    我认为,以下方法不够好:

    1.每一个状态都设计一个消息,导致每增加一个状态,服务端都需要改动。

    2.每次上线后都请求一次所有类型的最新的消息。

    3.最新的消息只推送一次就完事。

    第一个缺点已经说了,解决的方法是设计一个通用的消息结构和存储模型,集存储、转发、推送于一身。

    第二个方法,一个是消息太多,不可能每个都有更新,所以没必要每次都请求。而发送的请求带来没必要带宽的浪费和处理的压力,尤其在移动互联网情况下,掉线太多,浪费的带宽和cpu也是成倍增加。

    解决方法,类似日志式的方法,设备的每次变化都对应一个日志,让设备依次重放每个日志,如果状态具有唯一性,那么可以删除这个状态旧的日志,保留新的日志。

    第三个问题,在完成日志式的改造后,让每个日志对应一个数字,日志越新,数字越大,设备或者app只需要请求更新的日志即可。推送不再丢失消息,也不会重复消息。

    另外,考虑到日志太多,可能会导致同步缓慢,所以应该将日志分类,将一些紧急的状态变化分为一类,将一些不是很重要的消息,又分为一类,这时候存在两份不同的日志序列,按需请求即可。

  • 相关阅读:
    C/C++字符串转换函数;
    MFC CTreeCtrl 递归遍历算法
    汉字转拼音
    Windows之权限讲解
    Ubuntu 保存文件时报E212
    ON_WM_MOUSEWHEEL无响应
    sln、db、opendb、vcxproj、filters、user文件跟踪说明
    iOS 9: UIStackView入门
    Swift语言Storyboard教程:第一部分
    springboot启动项目报错:ERROR:o.s.b.d.LoggingFailureAnalysisReporter解决办法
  • 原文地址:https://www.cnblogs.com/williamjie/p/9579408.html
Copyright © 2011-2022 走看看