Android 代理不传递LWT消息?
我有以下Android 代理不传递LWT消息?,android,mqtt,messagebroker,paho,Android,Mqtt,Messagebroker,Paho,我有以下LWT主题和WT消息 private final String WILL_TOPIC = "sensor_0_LWT"; private final String WILL_MSG = "LWT: Unexpected Connection Drop Down"; 当我发布消息时,我订阅了一个名为传感器0的主题,但当我关闭WiFi并再次打开时,我希望看到我在连接选项中设置的LWT消息,但结果是我没有收到它 为什么重新连接时未收到LWT消息 代码: final MqttClientPer
LWT主题
和WT消息
private final String WILL_TOPIC = "sensor_0_LWT";
private final String WILL_MSG = "LWT: Unexpected Connection Drop Down";
当我发布消息时,我订阅了一个名为传感器0
的主题,但当我关闭WiFi并再次打开时,我希望看到我在连接选项中设置的LWT消息
,但结果是我没有收到它
为什么重新连接时未收到LWT
消息
代码:
final MqttClientPersistence persistenceDataDir = new
MqttDefaultFilePersistence(folder.toString());
final MqttAndroidClient client_1 = new MqttAndroidClient(getApplicationContext(), serverURI,
clientID, persistenceDataDir, Ack.AUTO_ACK);
MqttConnectOptions opts = new MqttConnectOptions();
opts.setCleanSession(false);
opts.setWill(WILL_TOPIC, WILL_MSG.getBytes(), 1, true);
opts.setKeepAliveInterval(keepAliveInterval);
您确定代理检测到您断开了连接吗?@r是的,异步回调两次显示“连接丢失”。但在我发布问题后发生的是,我尝试了很多次连接和断开代理的连接,有一次,我发现WT消息在重新连接后显示了两次?有什么逻辑解释吗?代理异步回调还是客户端回调?经纪人需要注意的是客户已断开连接,而不是相反。将显示两次消息-您正在连接,且clean session设置为false,因此消息应该为您排队。如果您在代理交付消息之前断开连接,然后重新连接并重新订阅,您将收到第一条排队消息,然后由于重新订阅而收到第二条消息。我认为这是代理异步回调,因为客户端回调是同步的。还是我的理解错了?@r请再问一个问题。LWT主题是否应该与我订阅的opic不同,或者这无关紧要