From 8077e8b67bc017a9e0016180a6eacc114cec28c8 Mon Sep 17 00:00:00 2001
From: DJIsean <102007705+DJIsean@users.noreply.github.com>
Date: Thu, 15 Dec 2022 16:14:24 +0800
Subject: [PATCH] Update DeviceServiceImpl.java
---
src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java b/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
index 10bb7e2..89e5093 100644
--- a/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
+++ b/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
@@ -12,7 +12,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -49,28 +48,28 @@
}
}
- public Optional<ServiceReply> publishWithReply(String topic, CommonTopicResponse response) {
+ public ServiceReply publishWithReply(String topic, CommonTopicResponse response) {
return this.publishWithReply(ServiceReply.class, topic, response, 2);
}
- public <T> Optional<T> publishWithReply(Class<T> clazz, String topic, CommonTopicResponse response, int retryTime) {
+ public <T> T publishWithReply(Class<T> clazz, String topic, CommonTopicResponse response, int retryTime) {
AtomicInteger time = new AtomicInteger(0);
// Retry three times
- while (time.getAndIncrement() < retryTime) {
+ while (time.getAndIncrement() <= retryTime) {
this.publish(topic, response);
Chan<CommonTopicReceiver<T>> chan = Chan.getInstance();
// If the message is not received in 0.5 seconds then resend it again.
- CommonTopicReceiver<T> receiver = chan.get(response.getMethod());
+ CommonTopicReceiver<T> receiver = chan.get(response.getTid());
if (receiver == null) {
continue;
}
// Need to match tid and bid.
if (receiver.getTid().equals(response.getTid()) &&
receiver.getBid().equals(response.getBid())) {
- return Optional.ofNullable(receiver.getData());
+ return receiver.getData();
}
}
- return Optional.empty();
+ throw new RuntimeException("No message reply received.");
}
}
\ No newline at end of file
--
Gitblit v1.9.3