|
@@ -2608,6 +2608,67 @@ System.out.println(res);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 发送mqtt指令
|
|
|
|
+ * @param sendTopic 发送的topic
|
|
|
|
+ * @param cmdInfo 发送的指令内容
|
|
|
|
+ * @param resTopic 接收指令返回的topic
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static String sendMqttCmdInfo(String sendTopic,Object cmdInfo,String resTopic){
|
|
|
|
+ MqttClient client;
|
|
|
|
+ String res = "";
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ try {
|
|
|
|
+ client=new MqttClient(mqttConfig.getUrl(),mqttConfig.getClientId()+"_"+(new Date()).getTime(),new MemoryPersistence());
|
|
|
|
+ MqttConnectOptions options=new MqttConnectOptions();
|
|
|
|
+ options.setCleanSession(true);
|
|
|
|
+ options.setUserName(mqttConfig.getUsername());
|
|
|
|
+ options.setPassword(mqttConfig.getPassword().toCharArray());
|
|
|
|
+ options.setConnectionTimeout(mqttConfig.getTimeout());
|
|
|
|
+ options.setKeepAliveInterval(mqttConfig.getKeepalive());
|
|
|
|
+ MqttHandler mqttHandler = new MqttHandler();
|
|
|
|
+ mqttHandler.setTopic(resTopic);
|
|
|
|
+
|
|
|
|
+ // 设置回调
|
|
|
|
+ client.setCallback(mqttHandler);
|
|
|
|
+
|
|
|
|
+ // 建立连接
|
|
|
|
+ client.connect(options);
|
|
|
|
+ // MqttCustomerClient.setClient(client);
|
|
|
|
+ client.subscribe(resTopic);
|
|
|
|
+
|
|
|
|
+ // 消息发布所需参数
|
|
|
|
+ MqttMessage message;
|
|
|
|
+ if (cmdInfo instanceof String){
|
|
|
|
+ message = new MqttMessage(((String) cmdInfo).getBytes());
|
|
|
|
+ }else {
|
|
|
|
+ message = new MqttMessage((byte[]) cmdInfo);
|
|
|
|
+ }
|
|
|
|
+ message.setQos(0);
|
|
|
|
+ client.publish(sendTopic, message);
|
|
|
|
+ int in = 0;
|
|
|
|
+
|
|
|
|
+ while (true){
|
|
|
|
+ Thread.sleep(1000);
|
|
|
|
+ if (mqttHandler.getRes() != null && mqttHandler.getRes().length() != 0){
|
|
|
|
+ res = mqttHandler.getRes();
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ in ++;
|
|
|
|
+ if (in > 10) break;
|
|
|
|
+ }
|
|
|
|
+ client.disconnect();
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
System.out.println(getPublicIp());
|
|
System.out.println(getPublicIp());
|
|
System.out.println(formatNumber(0.0));
|
|
System.out.println(formatNumber(0.0));
|