Quelqu'un at-il obtenu l'exemple de son démarrage rapide pour travailler? Ils fournissent du code NodeJS pour se connecter à leur pont MQTT, mais pour moi cela ne fonctionne pas:
[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] },
(des milliers de lignes de trace de pile supplémentaires) et aucune activité dans le tableau de bord Google IoT Core, ni aucun message dans aucun abonnement par extraction.
Un mosquitto_pub renvoie une étrange erreur:
% ./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.
google-iot-core
Prise en charge de Gambit
la source
la source
Réponses:
Cette erreur se produit lorsqu'il existe une incompatibilité de protocole sur la demande que vous envoyez à l'API Google MQTT.
Vous utilisez le port 8883 qui est pour MQTT sur SSL. À mes yeux, l'adresse que vous appelez est l'adresse http normale (sans https ni http, la valeur par défaut est http), qui utiliserait 1883, le port de MQTT ordinaire.
Si vous avez l'intention d'utiliser 8883 et SSL, appelez à l'adresse en utilisant https. Si vous ne vouliez pas du tout MQTT sur SSL, corrigez le port sur 1883.
la source