Android MQTT Demo

来源:互联网 发布:java list 合并 编辑:程序博客网 时间:2024/05/17 04:14

MQTT 类似于客户端和服务器之间的一个观察者模式,客户端向服务器订阅消息主题,如果有另外一个客户端向该主题发布一个消息,服务器就会将该消息推送到订阅了该主题的所有客户端,当然如果这个客户端没有在线,服务器会讲该消息存储到数据库,并且在这个客户端上线时讲该消息推送给客户端。

下面我们用图来理解一下它的工作过程,比如客户端想订阅一个名字为hello的主题,则它们先想服务器sub(订阅)该主题。
这里写图片描述
如上图,客户端1、客户端2、客户端3分别订阅了”hello”主题,然后客户端4向该主题上发布消息,此时客户端1、客户端2、客户端3都会收到由客户端4基于”hello”主题发布的消息,如下图。
这里写图片描述

下面我们配置服务器,我们以对MQTT进行了封装后的mosquitto为例。
大家可以去官网寻找最新的下载,现在是2016年4月,最新版本为mosquitto-1.4.8。官网地址为:http://mosquitto.org/files/source/

//安装必要的依赖包sudo apt-get install libssl-dev uuid-dev libc-ares-dev libc-ares2 g++ -ywget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gztar -xzvf mosquitto-1.4.8.tar.gzcd mosquitto-1.4.8sudo makesudo make installsudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1sudo ldconfig

以上命令执行没问题,说明mosquitto已经正常的安装成功,接下来即为使用。如下图,
这里写图片描述

1.开启mosquitto服务,执行命令为

mosquitto -v

mqtt服务跑起来了,会有相关的log信息.

下面四个分别代表客户端一、客户端二、客户端三、客户端四,客户端一、二、三都订阅了”hello”主题,执行订阅命令为:

mosquitto_sub -v -t "hello"

客户端四则向该”hello”主题发送消息,发布一个”Hi”消息,上图可以看到客户端一、二、三已经收到该消息,执行发布命令如下:

mosquitto_sub -t "hello" -m "Hi"

上面就是一个完整的交互过程。其实这个客户端可以包括是手机,嵌入式设备等等。
官方给了一个Android的例子,我将其封装了一下,基本上Android MQTT的开发基于这个例子进行修改就行了。
github:https://github.com/shuangmin/AndroidMQTT

2 0
原创粉丝点击