0

我正在使用 paho-mqtt 从 emqx 代理接收数据,但我丢失了数据,因为有时我的 paho-mqtt 订阅者出现故障。当我再次运行订阅者时,任何获取数据的方法都会提供所有已发布的数据。

4

2 回答 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 回答