我有以下部分代码:
包com.company;
import org.eclipse.paho.client.mqttv3。*;import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import javax.security.auth ….
如果我正确地理解了你的问题,你就订阅了一个主题'ofTopic',但当你有一个人发布主题'sTopic'的消息时你就没有收到消息。
您确定Mqtt客户端是否已成功连接到代理?在进行订阅呼叫之前使mqtt客户端连接。
if( mqttClient.isConnected()) { mqttClient.subscribe(sTopic); }
同样适用于发布。
if( mqttClient.isConnected()) { mqttClient.publish(sTopic,message); }
一旦这些调用结束,您应该在messageArrived回调方法中看到已发布的消息。
您需要将回调方法设置为mqttClient
clientCallback = new MqttCallback() { @Override public void connectionLost(Throwable cause) { } @Override public void messageArrived(String topic, MqttMessage message) throws Exception { } @Override public void deliveryComplete(IMqttDeliveryToken token) { } }; mqttClient.setCallback(clientCallback);