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はまだ機能しません。
ガンビットサポート

NODEJSアプリケーションによって作成されたJWTパスワードを使用してmosquitto_pubに-P引数を追加しても、役に立ちません。
ガンビットサポート

回答:


5

このエラーは、Google MQTT APIに送信するリクエストにプロトコルの不一致がある場合に発生します。

SSLを介したMQTT用の8883ポートを使用します。私の目には、呼び出すアドレスは通常のhttpアドレスです(httpsもhttpもない場合、デフォルトはhttpになります)。これは、プレーンなMQTTのポートである1883を使用します。

8883とSSLを使用する場合は、httpsを使用してアドレスを呼び出します。MQTT over SSLをまったく意味しなかった場合は、ポートを1883に修正します。


これは役に立ちません。NODEJSの例で使用しているポート8883が必要です。
ガンビットサポート

まあ、それがプロトコルの不一致の最も明白な理由ですが、エラーはmqttメッセージ内でも発生する可能性があります。たとえば、指定されたものと比較してメッセージが長すぎるなどです。あなたのケースで何が問題を引き起こすかは言い難い。
mico

1
正しい答えは、wiresharkを確認することです。プレーンテキストメッセージがPCAPにあるため、-tls-versionが元のコマンドラインに追加されても、mosquitto_pubが暗号化されたメッセージを送信しないことがわかりました。
ガンビットサポート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.