2017-01-21 8 views
0

Устройства посылают строки ASCII брокеру. Я ожидал строку в полезной нагрузке. Но узел MQTT узла Node-Red рассматривает его как двоичный blob.Узел Red MQTT Узел: полезная нагрузка содержит байтовый массив вместо строки

Я знаю, что MQTT обрабатывает все полезные нагрузки как капли. Но тот же узел правильно показывает полезную нагрузку как строку, когда сообщение отправляется с рабочего клиента MQTT. Таким образом, это, по-видимому, проблема с кодировкой.

Хотя нетрудно добавить еще один узел для преобразования данных в строку, мне было интересно, есть ли лучший способ справиться с этим - например, некоторая настройка в node-red для интерпретации полезной нагрузки как ASCII для определенного узла.

ответ

0

Узел MQTT-in использует узел npm is-utf8 для проверки входящих сообщений, чтобы узнать, являются ли они строками.

Если вы получаете буферы, то входящее сообщение не выполняет этот тест, я бы проверил, какая кодировка используется «устройством» для кодирования строки.