|
|
@@ -1,95 +0,0 @@
|
|
|
-package com.nb.core.service;
|
|
|
-
|
|
|
-import com.nb.core.entity.MqttMessage;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.http.HttpEntity;
|
|
|
-import org.springframework.http.HttpHeaders;
|
|
|
-import org.springframework.http.MediaType;
|
|
|
-import org.springframework.http.ResponseEntity;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.web.client.RestTemplate;
|
|
|
-
|
|
|
-/**
|
|
|
- * MQTT消息转发服务
|
|
|
- * 将MQTT消息通过HTTP转发给其他服务
|
|
|
- *
|
|
|
- * @author YourName
|
|
|
- * @version 1.0.0
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class MqttMessageForwardService {
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private RestTemplate restTemplate;
|
|
|
-
|
|
|
- /**
|
|
|
- * 转发单个MQTT消息
|
|
|
- *
|
|
|
- * @param message MQTT消息
|
|
|
- * @param targetUrl 目标服务URL
|
|
|
- * @return 转发结果
|
|
|
- */
|
|
|
- public boolean forwardMessage(MqttMessage message, String targetUrl) {
|
|
|
- try {
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
-
|
|
|
- HttpEntity<MqttMessage> request = new HttpEntity<>(message, headers);
|
|
|
- ResponseEntity<String> response = restTemplate.postForEntity(targetUrl, request, String.class);
|
|
|
-
|
|
|
- return response.getStatusCode().is2xxSuccessful();
|
|
|
- } catch (Exception e) {
|
|
|
- // 记录日志或处理异常
|
|
|
- e.printStackTrace();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 批量转发MQTT消息
|
|
|
- *
|
|
|
- * @param messages MQTT消息数组
|
|
|
- * @param targetUrl 目标服务URL
|
|
|
- * @return 转发结果
|
|
|
- */
|
|
|
- public boolean forwardMessages(MqttMessage[] messages, String targetUrl) {
|
|
|
- try {
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
-
|
|
|
- HttpEntity<MqttMessage[]> request = new HttpEntity<>(messages, headers);
|
|
|
- ResponseEntity<String> response = restTemplate.postForEntity(targetUrl, request, String.class);
|
|
|
-
|
|
|
- return response.getStatusCode().is2xxSuccessful();
|
|
|
- } catch (Exception e) {
|
|
|
- // 记录日志或处理异常
|
|
|
- e.printStackTrace();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 转发MQTT消息(带自定义头信息)
|
|
|
- *
|
|
|
- * @param message MQTT消息
|
|
|
- * @param targetUrl 目标服务URL
|
|
|
- * @param customHeaders 自定义头信息
|
|
|
- * @return 转发结果
|
|
|
- */
|
|
|
- public boolean forwardMessageWithHeaders(MqttMessage message, String targetUrl, HttpHeaders customHeaders) {
|
|
|
- try {
|
|
|
- if (customHeaders.getContentType() == null) {
|
|
|
- customHeaders.setContentType(MediaType.APPLICATION_JSON);
|
|
|
- }
|
|
|
-
|
|
|
- HttpEntity<MqttMessage> request = new HttpEntity<>(message, customHeaders);
|
|
|
- ResponseEntity<String> response = restTemplate.postForEntity(targetUrl, request, String.class);
|
|
|
-
|
|
|
- return response.getStatusCode().is2xxSuccessful();
|
|
|
- } catch (Exception e) {
|
|
|
- // 记录日志或处理异常
|
|
|
- e.printStackTrace();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|