• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ChoateYao
V2EX  ›  程序员

在物联网中经常会使用的 MTQQ 等技术来进行信息通讯,那么如何让同样消息类型不同的数据结构兼容不同版本的客户端?

  •  
  •   ChoateYao · Apr 20, 2021 · 686 views
    This topic created in 1858 days ago, the information mentioned may be changed or developed.
    如:拥有一个 Topic:A
    2015 年数据结构{ action_id: 1, playload:{user_id: 1, username: 小明, age: 18}}
    2019 年数据结构{ action_id: 1, playload:{user:{id:1, username: 小明, age: 18}, school:{name:实验小学}, grade: {name: 一年级}}}

    以上面这个例子,如何在服务端做到新老设备同事能够处理该消息。

    我曾经想过 3 种解决方案:
    1. 2015 年数据结构上不变动,新增 school 和 grade 字段
    2. 对于不同的设备版本进行版本归类,然后再根据不同版本进行数据组装推送
    3. 消息推送里面不附带具体数据,只标记有数据更新,然后通过 HTTP 接口进行请求数据更新。
    delectate
        1
    delectate  
       Apr 20, 2021
    设备 ota,增加 version 字段。后端根据 imei 和 version 匹配,按照对应格式下发相应版本数据。
    如果设备不能 ota,那么后端识别设备上报的内容特征,猜测出版本号,数据库绑定设备 imei 和 version,按照对应格式下发相应版本数据。

    这个和 mqtt 完全无关。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   965 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:34 · PVG 06:34 · LAX 15:34 · JFK 18:34
    ♥ Do have faith in what you're doing.