Paho-Mqtt Publish from callback messageArrived()

时间:2016-04-04 18:19:25

标签: java activemq mqtt

I have an application using MQTT implemented with the paho-mqtt-1.0.2 and I am using ActiveMQ as the broker. I have a class implementing the MqttCallback, what I am wondering is why does the client hang

@Override
messageArrived(...)
     do work
     mqtt.publish(TOPIC,PAYLOAD,2,false) <- here

I want to send a "response" message to the broker for the next step of the work to be done. Similar to this, I read in the docs for that callback function

It is possible to send a new message within an implementation of this callback (for example, a response to this message), but the implementation must not disconnect the client, as it will be impossible to send an acknowledgment for the message being processed, and a deadlock will occur.

Has anyone out there tried doing the above and get it to work?

I also tried using the MqttAsyncClient and that ended up with "Error too many publishes in progress" leading to undelivered messages.

I know how to get around this issue, I'm not looking for workaround; I'm looking for receiving and publishing on the thread where messageArrived() gets executed.

Happy Hunting!

0 个答案:

没有答案