2017-01-21 1 views
0

장치가 ASCII 문자열을 브로커에 전송 중입니다. 페이로드에서 문자열을 기다리고있었습니다. 그러나 Node-Red의 MQTT 노드는이 노드를 이진 BLOB로 처리합니다.노드 Red MQTT 노드 : 페이로드에 문자열 대신 바이트 배열이 포함됩니다.

MQTT는 모든 페이로드를 얼룩으로 처리한다는 것을 알고 있습니다. 그러나 데스크탑 MQTT 클라이언트에서 메시지를 보낼 때 같은 노드가 문자열을 페이로드로 올바르게 표시합니다. 그래서 이것은 인코딩 문제로 보입니다.

다른 노드를 추가하여 문자열로 변환하는 것은 어렵지 않지만 특정 노드의 페이로드를 ASCII로 해석하기 위해 노드 -Red의 일부 설정처럼 이것을 처리하는 더 좋은 방법이 있는지 궁금합니다.

답변

0

MQTT-in 노드는 is-utf8 npm 노드를 사용하여 들어오는 메시지를 테스트하여 문자열인지 확인합니다.

버퍼가 전달 된 다음 들어오는 메시지가이 테스트에 실패하면 "인코딩"에서 인코딩 된 문자열을 검사합니다.