MQTT初步使用

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接口在浏览器中访问发布的消息。

你可能感兴趣的:(MQTT初步使用)