подключение внешнего издателя MQTT к NODE-RED

В моем текущем проекте я пытаюсь подключить внешний датчик температуры к NODE-RED.

Я подключил MQTT к внешнему датчику. Этот датчик публикует данные с темой tempMeasurement. Конфигурация издателя MQTT следующая:

public class MQTTPublisher {

    // public static final String BROKER_URL =
    // "tcp://broker.mqttdashboard.com:1883";
    public static final String BROKER_URL = "tcp://test.mosquitto.org:1883";

    private MqttClient client;

    public MQTTPublisher() {
        try {
            client = new MqttClient(BROKER_URL, MqttClient.generateClientId(),
                    new MemoryPersistence());
            client.connect();

        } catch (MqttException e) {
            e.printStackTrace();
        }
    }

    public void publish(String topicName, int qos, byte[] payload)
            throws MqttException {
        final MqttTopic topic = client.getTopic(topicName);

        final MqttMessage message = new MqttMessage(payload);
        topic.publish(message);

        System.out.println("Published data. Topic: " + topic.getName()
                + "  Message: " + payload);
    }
}

С другой стороны, в Node-RED я создал узел MQTT с подпиской «tempMesicing». Конфигурация узла MQTT в NODE-RED следующая:

введите описание изображения здесь

введите описание изображения здесь

Моя проблема в том, что узел подписчика MQTT показывает сообщение отключено, как показано на рисунке выше. Не могли бы вы подсказать - что не так с конфигурацией в NODE-RED? Как я могу решить эту проблему?


person Pankesh    schedule 20.11.2015    source источник
comment
Обновите вопрос, добавив в него изображение диалогового окна конфигурации сервера MQTT (которое отображается при нажатии на значок карандаша). Но я думаю, что вы поместили полный URL-адрес в поле сервера, а не просто test.mosquitto.org.   -  person hardillb    schedule 20.11.2015
comment
@hardillb: Я обновил вопрос с конфигурацией. Обратите внимание, что я не вносил никаких изменений во вкладку «Безопасность», «Сообщение о рождении» и «Буду сообщать».   -  person Pankesh    schedule 21.11.2015
comment
Как сказал @hardillb, вы не должны включать tcp: // в сервер брокера. Удалите это, и он должен подключиться.   -  person knolleary    schedule 21.11.2015
comment
Теперь проблема решена удалением tcp: //. Можете ли вы исправить это решение в качестве ответа. Это поможет другим увидеть решение как ответ.   -  person Pankesh    schedule 21.11.2015


Ответы (1)


Как упоминалось в комментариях, вам необходимо удалить tcp: // из имени сервера на экране конфигурации.

person hardillb    schedule 21.11.2015