@RestController @RequestMapping("/subscribe") public class MyController { // MQTT服务器连接参数 private static final String BROKER_URL = "tcp://192.168.110.250:1883"; private static final String TOPICA = "test1"; private static final String TOPICB = "test2"; // 映射到订阅MQTT服务器的URL @GetMapping("/join") public String subscribe() throws MqttException { MqttClient client = new MqttClient(BROKER_URL, "testmqtt"); // 设置消息回调 client.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable throwable) { // 连接断开处理逻辑 } @Override public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception { // 消息到达处理逻辑 String message = new String(mqttMessage.getPayload()); System.out.println("Received message: " + message); //在这里可以根据订阅主题接收到的消息,进行下一步的操作 }
@Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { // 消息传送完成处理逻辑 } }); client.connect(); // 连接到MQTT服务器 client.subscribe(TOPICA); // 订阅消息主题 return "Subscribed to " + TOPICA; }