通过从命令提示符运行命令在rabbitmq上启用mqtt插件OPen cmd提示路径到rabbitmq / sbin默认wiil是C:\ Program Files \ RabbitMQ Server \ rabbitmq_server-3.6.9 \ sbin在windows中然后运行命令 .
“rabbitmq-plugins启用rabbitmq_mqtt”
我们需要设置运行rabbitmq的服务器系统的Topic,url . 随机发送clientId . 将Qos设置为0 OR 1 OR 2
String topic = "amq.topic"; String brokerUrlRpi_Mqtt = "tcp://192.168.xxx.xxx:1883/"; String clientId=UUID.randomUUID().toString();
如果从不同系统发送mqtt数据,用户名和密码应该是在rabbitmq中创建的新用户 . 如果mqtt和rabbitmq在本地运行,那么访客用户名和密码就可以了 .
`
public SendDataUsingMQTT() throws MqttException {
String tmpDir = System.getProperty("java.io.tmpdir");
// MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir);
try {
conOpt = new MqttConnectOptions();
conOpt.setUserName("username");
conOpt.setPassword(new String("password").toCharArray());
conOpt.setCleanSession(true);
client = new MqttClient(brokerUrlRpi_Mqtt,clientId, datastore);
client.setCallback(new MqttCallback() {
// add all anonymous implemented methods of connect
public void messageArrived(String arg0, MqttMessage arg1) throws Exception {
//
}
public void deliveryComplete(IMqttDeliveryToken arg0) { }
public void connectionLost(Throwable arg0) {}
}
catch (MqttException e) {
e.printStackTrace();
System.out.println("Unable to set up client: "+e.toString());
System.exit(1);
}
}
“