From 1d11f0ca2a4a247a3a27451759f963997f97fcca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E4=B8=99?= Date: Wed, 26 Mar 2025 14:46:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=87=BA=E9=94=99=EF=BC=8C?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E4=B8=80=E4=B8=AA=E7=AB=AF=E5=8F=A3=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jcpp/app/service/DownlinkCallService.java | 8 ++++-- .../service/impl/GrpcDownlinkCallService.java | 12 +++++---- .../service/impl/RestDownlinkCallService.java | 25 +++++++++---------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/DownlinkCallService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/DownlinkCallService.java index 692dd70..86a79b7 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/DownlinkCallService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/DownlinkCallService.java @@ -39,6 +39,10 @@ public abstract class DownlinkCallService { @Value("${cache.type}") protected String cacheType; + protected abstract int determinePort(int restPort, int grpcPort); + + protected abstract void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port); + public void sendDownlinkMessage(DownlinkRequestMessage.Builder downlinkMessageBuilder, String pileCode) { CacheValueWrapper pileSessionCacheValueWrapper = pileSessionCache.get(new PileSessionCacheKey(pileCode)); @@ -97,10 +101,10 @@ public abstract class DownlinkCallService { .setResultHandler(result -> log.debug("下行消息发送完成")); } else { + int port = determinePort(nodeRestPort, nodeGrpcPort); - _sendDownlinkMessage(downlinkMessageBuilder.build(), nodeIp, nodeRestPort, nodeGrpcPort); + _sendDownlinkMessage(downlinkMessageBuilder.build(), nodeIp, port); } } - protected abstract void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort); } \ No newline at end of file diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/GrpcDownlinkCallService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/GrpcDownlinkCallService.java index 7f3ac99..5aea74a 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/GrpcDownlinkCallService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/GrpcDownlinkCallService.java @@ -30,18 +30,20 @@ public class GrpcDownlinkCallService extends DownlinkCallService { DownlinkGrpcClient downlinkGrpcClient; @Override - protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort) { - try { + protected int determinePort(int restPort, int grpcPort) { + return grpcPort; + } + @Override + protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port) { + try { RequestMsg requestMsg = RequestMsg.newBuilder() .setTs(System.currentTimeMillis()) .setTracer(toTracerProto()) .setDownlinkRequestMessage(downlinkMessage) .build(); - downlinkGrpcClient.sendDownlinkRequest(HostAndPort.fromParts(nodeIp, nodeGrpcPort), - requestMsg); - + downlinkGrpcClient.sendDownlinkRequest(HostAndPort.fromParts(nodeIp, port), requestMsg); } catch (Exception e) { log.error("下行消息发送异常", e); } diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/RestDownlinkCallService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/RestDownlinkCallService.java index 6a429df..9df7b3d 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/RestDownlinkCallService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/RestDownlinkCallService.java @@ -34,17 +34,21 @@ public class RestDownlinkCallService extends DownlinkCallService { RestTemplate downlinkRestTemplate; @Override - protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort) { + protected int determinePort(int restPort, int grpcPort) { + return restPort; + } + + @Override + protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port) { try { - - invokeDownlinkRestApi(downlinkMessage, nodeIp, nodeRestPort); - + invokeDownlinkRestApi(downlinkMessage, nodeIp, port); } catch (RestClientException e) { log.error("下行消息发送异常", e); } } - private void invokeDownlinkRestApi(DownlinkRequestMessage downlinkRequestMessage, String nodeWebapiIpPort, int nodeRestPort) { + private void invokeDownlinkRestApi(DownlinkRequestMessage downlinkRequestMessage, String nodeIp, int port) { + // 调整参数名确保一致性 HttpHeaders headers = new HttpHeaders(); headers.add(JCPP_TRACER_ID, TracerContextUtil.getCurrentTracer().getTraceId()); headers.add(JCPP_TRACER_ORIGIN, TracerContextUtil.getCurrentTracer().getOrigin()); @@ -53,13 +57,8 @@ public class RestDownlinkCallService extends DownlinkCallService { HttpEntity entity = new HttpEntity<>(downlinkRequestMessage, headers); - try { - ResponseEntity response = downlinkRestTemplate.postForEntity("http://" + nodeWebapiIpPort + ":" + nodeRestPort + "/api/onDownlink", - entity, ResponseEntity.class); - log.debug("下行消息发送成功 {}", response); - } catch (RestClientException e) { - log.error("下行消息发送失败 {}", downlinkRequestMessage, e); - throw new RuntimeException(e); - } + String url = String.format("http://%s:%d/api/onDownlink", nodeIp, port); + ResponseEntity response = downlinkRestTemplate.postForEntity(url, entity, ResponseEntity.class); + log.debug("下行消息发送成功 {}", response); } } \ No newline at end of file