package com.boying.controller; import com.boying.controller.car.ServerMQTT; import com.google.gson.Gson; import io.lettuce.core.dynamic.annotation.Param; import lombok.RequiredArgsConstructor; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttTopic; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; /** * @author kdq * @version 1.0.0 * @ClassName TestController.java * @Description TODO * @createTime 2025年03月15日 18:10:00 */ @RestController @RequestMapping("/mqtt") @RequiredArgsConstructor public class TestController { //MQTT安装的服务器地址和端口号 public final String HOST = "tcp://47.92.115.108:1883"; //定义一个主题 public final String TOPIC = "/MXXT"; //定义MQTT的ID,可以在MQTT服务配置中指定 private final String clientid = "jzadmin"+System.currentTimeMillis(); private MqttClient client; private MqttTopic topic; private String userName = "jzadmin"; private String passWord = "Sys123456"; private MqttMessage message; @GetMapping("/test") public void test() throws MqttException, InterruptedException { ServerMQTT server = new ServerMQTT(); String str1 = "{\n" + " \"compId\":133,\n" + " \"firWeight\": 18,\n" + " \"secWeight\": 48,\n" + " \"ponderationType\": \"外销\",\n" + " \"printTime\": \"2022-07-21 18:29:32\",\n" + " \"createTime\": \"2022-07-21 18:29:32\",\n" + " \"outTime\": \"2022-07-21 18:29:32\",\n" + " \"vehicleNo\": \"冀E12345\",\n" + " \"executive\": 30 ,\n" + " \"orderId\": 88\n" + "}"; Map map = new HashMap<>(); map.put("t",System.currentTimeMillis()); map.put("f","control"); map.put("d","JYGL-MTXX"); map.put("s","0001"); map.put("p",str1); Gson gson =new Gson(); String str = gson.toJson(map); for (int i = 0; i < 1000; i++) { message = new MqttMessage(); message.setQos(2); message.setRetained(true); message.setPayload(str.getBytes()); server.publish(topic , message); System.out.println("message的保留状态为:"+message.isRetained() + "------ratained状态"); Thread.sleep(1000); } } }