Mqtt qos=3 结合实际例子理解

简书地址:https://www.jianshu.com/p/8b0291e8ee02

 

 qos=2 实例说明

   = 例子:App发布到网关的Topic获取网关中存储的网关下设备:
步骤一: Publisher(App), app存储msg-> Publish-> 
 broker(服务器),服务器存储msg
 服务器回复app PUBREC,发布收到
 app 告诉服务器 PUBREL, 发布释放
 服务器回复 App , PUBCOMP,那么App在CallBack中回调
 @Override
   public void deliveryComplete(IMqttDeliveryToken token) {
    try {
        //消息发送成功的回调
        LogUtils.d(TAG, "mqtt  Message 交付成功:" + new String(token.getMessage().getPayload()));
      } catch (MqttException e) {
        e.printStackTrace();
       }
  }
 App 中Mqtt回调改方法,表示消息发送成功回调,服务器100%收到
 App 中Delete(Msg)
   -- 最终结果:消息100%传输到服务器
   
  步骤二: *** 服务器向订阅某一个主题的网关发送数据
   *** Publisher(服务器)-> 存储msg-> push到网关(Subscriber),
   网关中存储store(msg),
   网关回复服务器PUBREL,发布收到
   服务回复网关,发布释放
   网关回复服务器PUBCOMP
   服务器delete(msg)

   -- 最终结果:网关100%收到数据

  步骤三:  *** 网关收到msg以后,查询网关下数据列表
    那么此时 Publisher(就是网关了) Subscriber(App), App订阅了接收数据的Topic
    Publisher(网关)发送publish到服务器broker,
    broker回复网关PUBREC
    网关回复服务器pubrel
    服务回复网关pubcomp
    网关delete数据

    -- 最终结果:网关数据100%发送到服务器

   步骤四: *** 服务器向订阅某一个topic的app发送数据
        //所有消息在这里返回
    @Override
    public void messageArrived(String topic, MqttMessage message) throws Exception {
       // App接受的所有消息在这里处理
    }
    -- 最终结果:服务器数据100%推送到订阅到改Topic的App

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值