MQTT协议就不多说了,百度一下很多,官网 mqtt.org上也有很多说明. 今天记录的是在物联网设备上连接mosquitto, 发布消息。 JAVA写的应用程序订阅设备发送过来的消息。就本身应用来说是很简单的,与通常用的MQ没多大差别。我关注的重点是 mosquitto 对离线消息的处理。通常网上的例子是没有这些的. 看了下官网文档。还有fusesource客户端mqtt-client API,发现是可以很简单实现的。记录下过程。
1. 修改配置文件 mosquitto.confpersistence true
persistence_file mosquitto.db
persistence_location d:/tmp/mosquitto
max_queued_messages 100000
2. 客户端publish消息时需要设置clientID以及clean session设置为false
public static void main(String[] args) throws Exception {
MQTT mqtt = new MQTT();
mqtt.setHost(MQTTConstants.HOST, MQTTConstants.PORT);
mqtt.setCleanSession(false);
mqtt.setClientId("AH-JAVA-CLIENT-PUB-001");
BlockingConnection connection = mqtt.blockingConnection();
connection.connect();
CountDownLatch count = new CountDownLatch(88);
for(int i=0; i<88; i++)