Я пишу приложение Java для публикации/подписания в Интернете сервера Things MQTT с использованием Eclipse Paho Lib (org.eclipse.paho.client.mqtt3-1.0.2. jar), как на стороне устройства, так и на стороне приложения.Соединение потеряно на MQTT подписаться на Интернет Things Server
Connect хорошо работает с обоими типами учетных данных, а так же, как представляется, публиковать ... Что дает мне ошибку является подписываться:
Попытка его mosquitto_sub командной строки, это петли, как это:
Client a:u5o0ux:tws sending CONNECT
Client a:u5o0ux:tws received CONNACK
Client a:u5o0ux:tws sending SUBSCRIBE (Mid: 1, Topic: matteo, QoS: 0)
Client a:u5o0ux:tws sending CONNECT
Client a:u5o0ux:tws received CONNACK
Client a:u5o0ux:tws sending SUBSCRIBE (Mid: 2, Topic: matteo, QoS: 0)
Client a:u5o0ux:tws sending CONNECT
Client a:u5o0ux:tws received CONNACK
Client a:u5o0ux:tws sending SUBSCRIBE (Mid: 3, Topic: matteo, QoS: 0)
Client a:u5o0ux:tws sending CONNECT
Client a:u5o0ux:tws received CONNACK
Client a:u5o0ux:tws sending SUBSCRIBE (Mid: 4, Topic: matteo, QoS: 0)
...
И так далее.
При попытке из Java с MqttAsyncClient, в subcribe() возвращает метод, но затем метод waitForCompletion() istantly trows:
Connection lost (32109) - java.io.EOFException
Это код, который я бегу:
String tmpDir = System.getProperty("java.io.tmpdir");
MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir);
...
// Construct a non blocking MQTT client instance
client = new MqttAsyncClient(getMQTTBrokerURL(), clientId, dataStore);
// Set this wrapper as the callback handler
client.setCallback(this);
, а затем:
connect();
...
IMqttToken subToken = client.subscribe(topic, qos, null, null);
subToken.waitForCompletion();
Кроме того, эта ошибка делает LIB не relese персистенции р пользователь AsyncClient, заставляя его вызывать исключение «Persistence Already in Use» при каждой попытке, пока я не остановлю JVM и не очистит этот путь вручную, но я полагаю, что это будет своего рода ошибка библиотеки.
К сожалению, я не могу (или не знаю, как) обращаться к серверу mqtt на стороне IoT, чтобы понять, что там происходит.
Любые идеи? Спасибо
Спасибо! Решила мою проблему. –