Google IoT Core를 작동시킬 수 없습니다


10

빠른 시작 에서 모범을 보인 사람 이 있습니까? MQTT 브릿지에 연결할 NodeJS 코드를 제공하지만 작동하지 않습니다.

[root@centos7 google-iot-mqtt]# node cloudiot_mqtt_example_nodejs.js \
>     --project_id=curious-furnace-181313 \
>     --registry_id=my-registry \
>     --device_id=mimic1 \
>     --private_key_file=./rsa_private.pem \
>     --algorithm=RS256
Google Cloud IoT Core MQTT example.
connect { '0': {},
   '1': 
   { [Function: require]
 resolve: [Function: resolve],
 main: 
  Module {
    id: '.',
    exports: {},
    parent: null,
    filename: '/home/tmp/uwe/google-iot-mqtt/cloudiot_mqtt_example_nodejs.js',
    loaded: true,
    children: [Object],
    paths: [Object] },

(수천 줄의 스택 추적) Google IoT Core 대시 보드에서 활동이 없으며 끌어 오기 구독의 메시지가 없습니다.

mosquitto_pub는 이상한 오류를 반환합니다.

% ./mosquitto_pub -d -h mqtt.googleapis.com -p 8883 -i projects/curious-furnace-181313/locations/us-central1/registries/my-registry/devices/mimic1 -u unused --key ~/mimic/scripts/mqtt/google-iot/rsa_private.pem --cert ~/mimic/scripts/mqtt/google-iot/rsa_cert.pem -t /devices/mimic1/events -m hello --insecure
Client projects/curious-furnace-181313/locations/us-central1/registries/my-registry/devices/mimic1 sending CONNECT
Error: Unrecognised command 16

Error: A network protocol error occurred when communicating with the broker.

NODEJS 앱에서 생성 된 메시지가 구독에 도달하는 데 시간이 걸렸습니다. 그러나 mosquitto_pub는 여전히 작동하지 않습니다.
— Gambit 지원

NODEJS 애플리케이션에서 작성된 JWT 비밀번호로 mosquitto_pub에 -P 인수를 추가해도 도움이되지 않습니다.
— Gambit 지원

답변:


5

Google MQTT API로 전송 한 요청에 프로토콜 불일치가있는 경우이 오류가 발생합니다.

SSL을 통한 MQTT 용 8883 포트를 사용합니다. 내 눈에 당신이 부르는 주소는 일반 http 주소 (https 또는 http가 없으면 기본값은 http가 됨)이며 일반 MQTT의 포트 1883을 사용합니다.

8883 및 SSL을 사용하려는 경우 https를 사용하여 주소로 전화하십시오. SSL을 통한 MQTT를 전혀 의미하지 않은 경우 포트를 1883로 수정하십시오.


도움이되지 않습니다. NODEJS 예제에서 사용하는 포트 8883이 필요합니다.
— Gambit 지원

이것이 프로토콜 불일치의 가장 확실한 이유이지만, 오류가 mqtt 메시지 내에서도 발생할 수 있습니다 (예 : 지정된 것과 비교하여 너무 긴 메시지). 귀하의 경우에 문제를 일으키는 것은 말하기 어렵습니다.
— mico

1
정답은 wireshark를 보는 것입니다. 일반 텍스트 메시지가 PCAP에 있기 때문에 --tls-version이 원래 명령 줄에 추가 된 경우에도 mosquitto_pub가 암호화 된 메시지를 보내지 않는다는 것을 알았습니다.
— Gambit 지원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.