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.