この記事を参考にして、QoS1 と QoS2 のメッセージの違いはわかると思いますが、両方を Paho MQTT クライアントとして扱う場合の違いはわかりません。
次のようなトピックにサブスクライブするとします。
MqttClient subscriber = new MqttClient(SERVER_URI, SUBSCRIBER_ID);
subscriber.subscribe(TOPIC);
そして、次のようなメッセージを公開しています。
publisher.publish(TOPIC, PAYLOAD, 1, false);
現時点では、MqttCallback インターフェースを使用して、サブスクライバーに届くメッセージを処理しています。
オーバーライドする方法があります:
public void messageArrived(String topic, MqttMessage mqttMessage) {
if(mqttMessage.isDuplicate()) {
// is it really the duplicate message from my perspective?
} else {...}
}
MqttMessage で isDuplicate() メソッドを見つけることができますが、true を返す mqttMessage がサブスクライバーが受信した最初のメッセージではないことをどのように確認できますか?
QoS1 の処理方法を示すソリューションを見つけることに非常に興味がありますが、ここで何かを明確にするすべての回答をいただければ幸いです。
クラクフからよろしく!