热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MQTT在Android上的二次封装

MQTT在物联网上的运用十分的广泛,目前移动端的消息推送服务,数据直连服务等都是基于MQTT消息协议进行。阅读了很多MQTT的相关资料,项目中也使用了一段时间,发现MQTT表现得非

MQTT在物联网上的运用十分的广泛,目前移动端的消息推送服务,数据直连服务等都是基于MQTT消息协议进行。
阅读了很多MQTT的相关资料,项目中也使用了一段时间,发现MQTT表现得非常稳定。所以这里安利一波。

项目地址

添加依赖

  • 在project的build.gradle文件中添加maven仓库

    repositories {
    maven {
    url "https://repo.eclipse.org/content/repositories/paho-snapshots/"
    }
    }

  • 在app的build.gradle文件中添加依赖

    dependencies {
    implementation 'com.pingerx:android-mqtt:1.0.2'
    }

使用流程

  • 初始化MQTT

    MqttManager.getInstance().init(context)

  • 连接MQTT服务端

    MqttManager.getInstance().connect {
    onConnectSuccess {
    showTips("服务器连接成功")
    }
    onConnectFailed {
    showTips("服务器连接失败:${it?.message}")
    }
    }

  • 订阅一个话题

    MqttManager.getInstance().subscribe(subscriptionTopic) {
    onSubscriberSuccess {
    showTips("订阅成功")
    }
    onSubscriberFailed {
    showTips("订阅失败:${it?.message}")
    }
    onDeliveryComplete {
    showTips("消息推送完毕:$it")
    }
    onConnectionLost {
    showTips("连接已断开")
    }
    }

  • 推送一条消息

    MqttManager.getInstance().publishMessage(publishTopic, "Hello Mqtt...")

  • 主动断开连接

    MqttManager.getInstance().disconnect()

  • 关闭MQTT客户端(一般app退出时调用)

    MqttManager.getInstance().close()

相关学习资料

  • 官方Android项目地址
  • 什么是MQTT
  • 一文读懂MQTT协议
  • MQTT比TCP协议好在哪儿?
  • MQTT搭建推送服务

推荐阅读
author-avatar
vijay
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有