您的位置:首页 > 编程语言 > Qt开发

MQTT初步使用

2015-08-16 18:56 411 查看
1. 下载并安装Mosquitto(MQTT的代理,也可以用IBM的ISMB,Mosquitto要优于ISMB)
http://mosquitto.org/download/
参考 搭建Android MQTT推送平台

MQTT协议的简单介绍和服务器的安装

[移动] Mosquitto简要教程(安装/使用/测试)

2. 简单测试

一个完整的MQTT示例包括一个代理器,一个发布者和一个订阅者。测试分为以下几个步骤:
【1】启动服务mosquitto。
【2】订阅者通过mosquitto_sub订阅指定主题的消息。
【3】发布者通过mosquitto_pub发布指定主题的消息。
【4】代理服务器把该主题的消息推送到订阅者。

2.1 启动代理服务
mosquitto( -c mosquitto.conf)

2.2 订阅主题
mosquitto_sub -v -t sensor
【-t】指定主题,此处为sensor
【-v】打印更多的调试信息

2.3 发布内容
mosquitto_pub -t sensor -m 12
【-t】指定主题
【-m】指定消息内容

2.4 运行结果
当发布者推送消息之后,订阅者获得以下内容
sensor 12

参考 MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用

开发Java程序

3.下载mqtt-client-1.7-uber.jar包

fusesource版本:mqtt-client-1.7-uber.jar
下载地址:https://github.com/fusesource/mqtt-client

fusesource提供三种mqtt client api: 阻塞API,基于Futur的API和回调API。其中,回调API是最复杂的也是性能最好的,另外两种均是对回调API的封装。

参考 MQTT (mosquitto)环境搭建

MQTT:Demo,该demo用java编写,包括所需要的jar包。

运行步骤:

3.1 启动代理服务

mosquitto( -c mosquitto.conf)

3.2 运行java类WSMQTTClientSubscribe

3.3 根据代码中指定的主题topic进行发布消息:

比如:public static Topic[] topics1 = {new Topic("china/beijing",QoS.EXACTLY_ONCE),new Topic("china/tianjin",QoS.AT_LEAST_ONCE),new Topic("china/shandong",QoS.AT_MOST_ONCE)};

则topic为上行代码中的topics1 数组,该topic用于发布消息。

3.4 发布消息(同步骤2.3)

D:\Program Files\mosquitto>mosquitto_pub -t china/beijing -m [{'name':'lhn'},{'a
ge',12}]

3.5 在Java console中查看结果:

八月 16, 2015 6:54:15 下午 com.lzc.mqtt.WSMQTTClientSubscribe main
信息: MQTTClient Message Topic=china/beijing Content :[{'name':'lhn'},{'age',12}]

发现只需要一个mosquitto代理,就可以实现message的发布和订阅,并不需要servlet或者tomcat等。

下一步:

这个链接中的实现web接口在浏览器中访问发布的消息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: