Android Mqtt客户端的接入
前言
随着物联网的不断发展,Android在设备上的应用也越来越广泛。在设备和服务器通信时,大部分app都是主动去请求的,基于Mqtt发布/订阅的机制可以实现双向的消息通讯。
搭建windows版的Mqtt服务
下载地址:http://activemq.apache.org/apollo/download.html
1.将下载后的appollo的压缩包解压到一个目录(eg:D:\apollo),使用cmd命令切换到appollo的bin目录下,
运行“apollo.cmd
”创建服务器实例,会在bin目录下生成mybroker文件夹create 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
对你有用的话记得点赞哦!有问题的可以留言,我会及时答复
上一篇: Atomic系列类整体介绍
下一篇: 湖北过年美食有哪些