使用Java实现华为IOTDA的MQTT发送消息,
首先,你需要在你的项目中添加paho-mqtt依赖。
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
然后,你可以使用以下代码发送MQTT消息:
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class HuaweiIOTDAMqttSender {
private static final String BROKER_URL = "ssl://broker.iotda.cn:8883";
private static final String CLIENT_ID = "your_client_id";
private static final String USERNAME = "your_username";
private static final String PASSWORD = "your_password";
private static final String TOPIC = "your_topic";
private static final int QOS = 1;
public static void main(String[] args) {
MemoryPersistence persistence = new MemoryPersistence();
try {
MqttClient client = new MqttClient(BROKER_URL, CLIENT_ID, persistence);
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName(USERNAME);
options.setPassword(PASSWORD.toCharArray());
options.setCleanSession(true);
System.out.println("Connecting to broker: " + BROKER_URL);
client.connect(options);
System.out.println("Connected");
String payload = "Hello, Huawei IOTDA!";
MqttMessage message = new MqttMessage(payload.getBytes());
message.setQos(QOS);
System.out.println("Publishing message: " + payload);
client.publish(TOPIC, message);
System.out.println("Message published");
client.disconnect();
System.out.println("Disconnected");
System.exit(0);
} catch (MqttException e) {
e.printStackTrace();
}
}
}
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttClientExample {
public static void main(String[] args) {
String broker = "ssl://your-broker-url:8883";
String clientId = "your-client-id";
String username = "your-username";
String password = "your-password";
String topic = "your-topic";
MemoryPersistence persistence = new MemoryPersistence();
try {
MqttClient client = new MqttClient(broker, clientId, persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setUserName(username);
connOpts.setPassword(password.toCharArray());
client.connect(connOpts);
String payload = "Hello, World!";
MqttMessage message = new MqttMessage(payload.getBytes());
client.publish(topic, message);
client.disconnect();
} catch (MqttException me) {
System.out.println("Reason: " + me.getReasonCode());
System.out.println("Message: " + me.getMessage());
System.out.println("Loc: " + me.getLocalizedMessage());
System.out.println("Cause: " + me.getCause());
System.out.println("Exception: " + me);
}
}
}
添加了Eclipse Paho MQTT客户端库的依赖。你可以在Maven项目的pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>