发布PAHO MQTTCLCLIENT的方法永远



这可以很好地启动连接并发布第一个消息:

MemoryPersistence persistence = new MemoryPersistence();
client = new MqttClient("tcp://" + IrisProperties.MQTT_SERVER_ADDRESS,
    IrisProperties.MQTT_USERNAME,persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setConnectionTimeout(1);
connOpts.setUserName(IrisProperties.MQTT_USERNAME);
connOpts.setPassword(IrisProperties.MQTT_PASSWORD.toCharArray());
connOpts.setCleanSession(true);
client.connect(connOpts);

此连接每秒发布100多条消息,而此行没有任何问题:

MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
client.publish(topic, message);

但是一段时间后(几分钟后)此方法的第三行

sampleClient.publish(topic, message);

即使我将超时设置为1秒。

我将Moquette用作Webockets的MQTT经纪人。

使用

client.settimetowait(timetowaitinmillis);

默认情况下,这段时间为-1,因此会阻止当前线程直到操作完成。

相关内容

  • 没有找到相关文章

最新更新