我正在使用 paho-mqtt 从 emqx 代理接收数据,但我丢失了数据,因为有时我的 paho-mqtt 订阅者出现故障。当我再次运行订阅者时,任何获取数据的方法都会提供所有已发布的数据。
问问题
231 次
2 回答
0
如果没有订阅者,EMQ x 会丢弃该消息,这是正常的设计。
可以试试 EMQ x 企业版,使用后端进行离线数据存储。
https://docs.emqx.io/tutorial/latest/en/backend/whats_backend.html
于 2020-04-15T02:54:59.607 回答
0
我希望你得到一个解决方案。我不知道你的客户端,但是 paho-mqtt java 客户端可以自动重新连接。可以在“connectComplete(boolean reconnect, String s)”布尔参数中检查此重新连接
public class MqttautoClient implements MqttCallbackExtended {
.
.
.
@Override
public void connectComplete(boolean reconnect, String s) {
Log.d(TAG, "Connection connectComplete");
}
@Override
public void connectionLost(Throwable throwable) {
Log.d(TAG, "Connection lost");
}
@Override
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception
{
Log.d(TAG, "messageArrived");
}
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
Log.d(TAG, "deliveryComplete ");
}
}
于 2021-05-08T07:02:28.320 回答