काम करने के लिए 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 -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 ऐप द्वारा उत्पन्न संदेशों को सदस्यता प्राप्त करने में कुछ समय लगा। लेकिन मच्छर_पब अभी भी काम नहीं करता है।
गामित सपोर्ट

एक JWT पासवर्ड के साथ mosquitto_pub में -P तर्क को जोड़ना, क्योंकि उनके NODEJS एप्लिकेशन मदद नहीं करते हैं।
गामित सपोर्ट

जवाबों:


5

यह त्रुटि तब होती है, जब आपके द्वारा Google MQTT API को भेजे गए अनुरोध पर एक प्रोटोकॉल मिसमैच होता है।

आप SSL पर MQTT के लिए 8883 पोर्ट का उपयोग करते हैं। मेरी नजर में आप जिस पते पर कॉल करते हैं वह सामान्य http एड्रेस (बिना https और http के डिफॉल्ट फॉल्स http होना) है, जो कि 1883 में सादे MQTT के पोर्ट का उपयोग करेगा।

यदि आप 8883 और एसएसएल का उपयोग करने का इरादा रखते हैं, तो https का उपयोग करके पते पर कॉल करें। यदि आपके पास SSL पर MQTT का मतलब बिल्कुल नहीं था, तो 1883 को पोर्ट को ठीक करें।


यह मदद नहीं करता है। वे 8883 पोर्ट की आवश्यकता है, जो उनके NODEJS उदाहरण का उपयोग करता है।
गामित सपोर्ट

खैर, यह प्रोटोकॉल मिसमैच का सबसे स्पष्ट कारण है, लेकिन त्रुटि मैकट संदेश के अंदर भी हो सकती है, उदाहरण के लिए जो निर्दिष्ट है उसकी तुलना में बहुत लंबा संदेश। यह कहना मुश्किल है कि आपके मामले में क्या समस्या है।
mic

1
सही उत्तर तारकश को देखना है। मुझे पता चला कि जब -tls-version को मूल कमांड लाइन में जोड़ा जाता है, तब भी mosquitto_pub एन्क्रिप्टेड मैसेज नहीं भेजता है, क्योंकि प्लेटेक्स्ट मैसेज PCAP में होता है।
सपोर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.