package sendMQTT; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import sendMQTT.HTTPUtils.PropertiesFileUploader; import set.Setsys; import user.Usrdell; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; public class Server { static String host="tcp://39.99.43.227:1883"; static String clientId="1231@qq.com"; /** * 获取当前系统时间 * @return 格式化的时间字符串,格式为 "yyyy-MM-dd HH:mm:ss" */ public static String getCurrentSystemTime() { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return now.format(formatter); } /** * 获取当前系统时间(自定义格式) * @param pattern 时间格式模式,例如 "yyyy-MM-dd HH:mm:ss"、"yyyy/MM/dd HH:mm:ss" 等 * @return 格式化的时间字符串 */ public static String getCurrentSystemTime(String pattern) { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return now.format(formatter); } private static void testCode() { String mes_id="hxzkcontrol_20151104";//消息ID String userId=Usrdell.getUserEmail();//用户ID String deviceID=Setsys.getMowerIdValue();//设备ID String protiesFilePath="./dikuai.properties";//地块信息配置文件 String json = PropertiesFileUploader.movePathSend(mes_id,userId, deviceID, protiesFilePath);//生成给设备下发的JSON sendMQTT(json, host, clientId,deviceID); } private static void sendMQTT(String messageJson, String host, String clientId,String deviceID) { try { String topic="app/p/mower/"+deviceID+"/path"; MqttConnectOptions options = new MqttConnectOptions(); options.setCleanSession(true); MqttClient client = new MqttClient(host, clientId); client.connect(options); // 添加关闭钩子,程序退出时关闭连接 Runtime.getRuntime().addShutdownHook(new Thread(() -> { try { if (client.isConnected()) { client.disconnect(); client.close(); } } catch (Exception e) { } })); MqttMessage message = new MqttMessage(); message.setPayload(messageJson.getBytes("UTF-8")); client.publish(topic, message); System.out.println("发送数据到主题: " + topic); } catch (MqttException e) { throw new RuntimeException(e); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } }