Google IoT Core'un çalışması sağlanamıyor


10

Hızlı çalışmaya başlamak için örnek alan var mı? MQTT köprülerine bağlanmak için NodeJS kodu sağlarlar, ancak benim için çalışmıyor:

[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] },

(binlerce satır yığın izlemesi) ve Google IoT Core gösterge tablosunda etkinlik olmaması veya herhangi bir çekme aboneliğindeki iletilerin olmaması.

Bir mosquitto_pub garip bir hata döndürür:

% ./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.

Görünüşe göre NODEJS uygulaması tarafından oluşturulan mesajların aboneliklere ulaşması biraz zaman aldı. Ancak mosquitto_pub hala çalışmıyor.
Gambit Desteği

NODEJS uygulamaları tarafından oluşturulan JWT şifresi ile mosquitto_pub öğesine -P argümanı eklemek yardımcı olmaz.
Gambit Desteği

Yanıtlar:


5

Bu hata, Google MQTT API'sına gönderdiğiniz istekte bir protokol uyuşmazlığı olduğunda ortaya çıkar.

SSL üzerinden MQTT için olan 8883 bağlantı noktasını kullanın. Benim gözümde, aradığınız adres normal http adresidir (https veya http olmadan varsayılan http'dir), düz MQTT portu olan 1883'ü kullanır.

8883 ve SSL kullanmak istiyorsanız, https kullanarak adres araması yapın. SSL üzerinden MQTT demek istemediyseniz, bağlantı noktasını 1883'e sabitleyin.


Bu yardımcı olmuyor. NODEJS örneğinin kullandığı 8883 numaralı bağlantı noktasını GEREKİRLER.
Gambit Desteği

Protokol uyuşmazlığının en belirgin nedeni budur, ancak mqtt mesajlarında da hata olabilir, örneğin belirtilene kıyasla çok uzun mesaj. Durumunuzda neyin sorun yarattığını söylemek zor.
mico

1
Doğru cevap wireshark'a bakmaktır. Mosquitto_pub'ın --tls-version orijinal komut satırına eklendiğinde bile şifreli mesaj göndermediğini anladım, çünkü düz metin mesajı PCAP'de.
Gambit Desteği
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.