| | |
| | | package Mqttmessage; |
| | | import Mqttmessage.Util.DeviceMessageParser; |
| | | import gecaoji.Getgecaojiimu_data; |
| | | import gecaoji.gecaojistatus; |
| | | import Mqttmessage.Entity.GPSData; |
| | | import Mqttmessage.Entity.GPSData.StatusInfo; |
| | |
| | | try { |
| | | // 重新订阅主题 |
| | | clientInstance.getClient().subscribe(topic, qos); |
| | | System.out.println("MQTT重连成功,已重新订阅主题: " + topic); |
| | | return; // 重连成功,退出循环 |
| | | } catch (Exception e) { |
| | | System.err.println("重新订阅主题失败: " + e.getMessage()); |
| | |
| | | } |
| | | |
| | | retryCount++; |
| | | if (retryCount % 5 == 0) { |
| | | System.out.println("等待MQTT自动重连... (" + retryCount + "/" + maxRetries + ")"); |
| | | } |
| | | } catch (InterruptedException e) { |
| | | Thread.currentThread().interrupt(); |
| | | System.err.println("重连线程被中断"); |
| | |
| | | clientInstance.connect(); |
| | | if (clientInstance.isConnected()) { |
| | | clientInstance.subscribe(qos); |
| | | System.out.println("手动重连成功,已重新订阅主题: " + topic); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | } |
| | | |
| | | public void deliveryComplete(IMqttDeliveryToken token) { |
| | | System.out.println("deliveryComplete---------" + token.isComplete()); |
| | | // 交付完成回调 |
| | | } |
| | | |
| | | public void messageArrived(String topic, MqttMessage message) throws Exception { |
| | |
| | | String gpsRaw = gpsData.getGps_raw(); |
| | | UDPServer.processSerialData(gpsRaw); |
| | | gecaojistatus.parseStatus(gpsData.getStatus()); |
| | | Getgecaojiimu_data.parseStatus(gpsData.getImu_data()); |
| | | } |
| | | |
| | | } |