前言

随着物联网的不断发展,Android在设备上的应用也越来越广泛。在设备和服务器通信时,大部分app都是主动去请求的,基于Mqtt发布/订阅的机制可以实现双向的消息通讯。

搭建windows版的Mqtt服务

下载地址:http://activemq.apache.org/apollo/download.html

 1.将下载后的appollo的压缩包解压到一个目录(eg:D:\apollo),使用cmd命令切换到appollo的bin目录下,

  运行“apollo.cmd create mybroker”创建服务器实例,会在bin目录下生成mybroker文件夹

2.切换到mybroker的bin目录执行 “appolo-broker.cmd run” 出现以下内容说明Mqtt服务已经搭建成功啦

 3.浏览器访问

Android上实现Mqtt客户端

标准的mqtt客户端demo
https://github.com/eclipse/paho.mqtt.android

无法运行的话文章末尾附件下载,本人亲测可用

1.运行demo,并配置服务器地址、端口号(mqtt服务已经开启,手机和电脑处于同一局域网内)

2.连接上服务器,打开浏览器便可以查看连接的设备和收发的消息

关键代码类及方法:

连接:

MqttAndroidClient
 @Override    public IMqttToken connect(MqttConnectOptions options, Object userContext,                              IMqttActionListener callback) throws MqttException {        IMqttToken token = new MqttTokenAndroid(this, userContext,                callback);        connectOptions = options;        connectToken = token;         ...............         ...............}

订阅:

  @Override    public IMqttToken subscribe(String topic, int qos) throws MqttException,            MqttSecurityException {        return subscribe(topic, qos, null, null);    }

发送:

 @Override    public IMqttDeliveryToken publish(String topic, MqttMessage message)            throws MqttException, MqttPersistenceException {        return publish(topic, message, null, null);    }

 

标准的Mqtt Demo是基于多个clientId链接同一个服务上进行的封装,如果我们只是单纯的单一设备(例如:以uuid还是mac地址作为clientId)进行连接时,可以直接基于MqttAndroidClient 来进行代码编写。在回调中处理响应的业务逻辑,注意断连问题。
 

包含windows下的mqtt服务压缩包和Android mqtt的标准demo
https://download.csdn.net/download/swedne/12466028

 

                                      对你有用的话记得点赞哦!有问题的可以留言,我会及时答复












 

更多相关文章

  1. Android中dp,px,sp概念梳理以及如何做到屏幕适配
  2. android设备的内存空间(RAM)总空间和可用空间大小的获取以及一些
  3. adb常用命令总结
  4. android利用post方式与web服务器通信
  5. Android自学笔记-3-ADB的常用命令
  6. Android蓝牙开发的一些经验
  7. mac os x中android无法连接手机的解决方案
  8. ym——Android从零开始(1)(Android体系架构及认识)(新)
  9. android Logger 一二三

随机推荐

  1. Android 5.0后截屏,无需root
  2. Android实现字幕滚动的方法
  3. 如何搭建Repo服务器端
  4. Android NDK入门理解
  5. Android 控件Edittext详解
  6. android耳机状态的检测
  7. 「转」Android Design in Action —— 十
  8. A015-布局之LinearLayout
  9. Android数据存储方式:SharePreference、SQ
  10. androidManifest.xml之uses-permission(