Не удается подключиться к серверу MQTT: «Код причины: 5 - не авторизован для выполнения запрошенной операции» - PullRequest
0 голосов
/ 11 октября 2019
  • Задача: отправить "Hello world" на сервер для тестирования.
  • Сервер: clouldMQTT.
  • Lib: PahoMQTT.
  • Код причины: 5 -Не авторизован для выполнения запрошенной операции.
  • Причина: ноль.
  • Код сообщения: нет разрешений на подключение.
  • Код:

    String topic    = "Lesson_MQTT_server";
    String broker   = "tcp://m15.cloudmqtt.com:18594";
    char [] pass    = "qmaoaTfDebag".toCharArray(); // Fake pass
    String userId   = "oelmanhl";
    String content  = "Hello world!";
    int qos         = 0;
    
    
    try {
        MqttClient client = new MqttClient (broker, userId, new MemoryPersistence());
        MqttConnectOptions options = new MqttConnectOptions ();
        options.setAutomaticReconnect(true);
        options.setCleanSession(true);
        options.setPassword(pass);          
        System.out.println ("Connecting..."); 
    
        client.connect(options); 
        System.out.println ("Conntected!");
    
        MqttMessage message = new MqttMessage ();
        message.clearPayload();
        message.setPayload(content.getBytes());
        message.setQos(qos);
        System.out.println ("Publishing message...");
    
        client.publish(topic, message);
        System.out.println ("Message published!");
    
        client.disconnect();
        System.out.println ("Disconect!");
    
    } catch (MqttException ex) {
        System.out.println ("Reason code: " + ex.getReasonCode());
        System.out.println ("Cause code: " + ex.getCause());
        System.out.println ("Message code: " + ex.getMessage());
    }
    
...