1

MQTT over Websocket プロトコル

ポート 443 (ssl/tls) で erlang mqtt websockets を使用して IBM Watson IoT サービスに接続しようとしています。しかし、私はエラーを受け取っていました。

IBM dos ( https://console.ng.bluemix.net/docs/services/IoT/iotplatform_task.html#devices ) は、Websocket 接続をサポートしていると述べています。通常のTCP接続(接続に成功しました)を除いて、WebSocketの使用法(チュートリアル/ガイド)については言及されていません。

クライアント アプリケーションとしての Websocket 接続については、Amazon IoT ( http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html ) のような簡単なステップ バイ ステップのドキュメントが必要です。

不適切であると思われる URL/URI、つまり ws(s)://host:port/path について考えています。現在、wss://fybr123mqtt.mybluemix.net ( fybr123mqttは私のアプリケーション名) として指定しています。mqtt を介して IBM Watson IoT に接続するためのホスト、ポート、およびパスは何ですか? また、「client_id」、「username」、「password」、「authentication token」などの他のパラメータを HOST とともに送信する方法は? また、mqtt 用の erlang websocket クライアントを提案し、websocket サーバーにアクセスするための簡単な手順についても言及してください。Erlang mqtt クライアント (emqttc) は websocket をサポートしていません。

4

2 に答える 2

1

接続プロセスは、
console.ng.bluemix.net /docs/services/IoT/devices/mqtt.html で明確に説明されています。

あなたが言及した URL は正しくありません: wss://fybr123mqtt.mybluemix.net

ステップ2 : console.ng.bluemix.net/docs/services/IoT/iotplatform_task.html#devicesからデバイスを Watson IoT Platform に接続すると、次のように表示されます。

デバイスを接続するときは、次の情報が必要です。

URL: org_id.messaging.internetofthings.ibmcloud.com
Where org_id is the ID of your Watson IoT Platform organization.
Port:
    1883
    8883 (encrypted)
    443 (websockets)
Device identifier: d:org_id:device_type:device_id
This combination of parameters uniquely identifies your device.
Username: use-token-auth
This value indicates that you are using token authorization.
Password: Authentication token
This value is the unique token that you defined or that was assigned to your device when you registered it.

org_id、device_type、device_id、および password は、ステップ 1: デバイスを Watson IoT Platform に登録するを完了すると提供されます。

注: クライアント ID はデバイス識別子です: d:org_id:device_type:device_id

私は mqttfx、eclipse paho、mosquitto を正常に使用しました。使用できる無料の mqtt クライアントは他にもたくさんあります。

また、Java、Pyhton などで IBM のクライアント ライブラリを使い始めるのに役立つ優れたチュートリアル (レシピ) もあります。 bluemix-iot-node-red-app/"

mosquitto "developer.ibm.com/recipes/tutorials/using-mosquitto-as-a-gateway-for-watson-iot/" を使用したゲートウェイ デバイス タイプの例を次に示します。

非常に使いやすい NodeRed のクライアント ノードを忘れないでください。

これについてまだサポートが必要な場合はお知らせください。

ありがとう、ダニエル

于 2016-12-07T06:39:23.377 に答える
0

URL:wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:8883

NodeJS を使用すると正常に動作します。それ以上のエンドポイントは指定しません。

[BaseClient:connect] Connecting to IoTF with host : wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:8883
[DeviceClient:connect] DeviceClient Connected
connected
[DeviceClient:publish] Publishing to topic iot-2/evt/myevt/fmt/json with payload {"radiation":1} with QoS 2

これは、サンプルクライアント コード に基づいています。"enforce-ws" : true

そのクライアントを変更し、443 でもテストしました。

[BaseClient:connect] Connecting to IoTF with host : wss://6DigitOrgID.messaging.internetofthings.ibmcloud.com:443
[DeviceClient:connect] DeviceClient Connected
connected
[DeviceClient:publish] Publishing to topic iot-2/evt/myevt/fmt/json with payload {"radiation":1} with QoS 2

erlang のサンプルは知りません。

于 2016-12-07T12:45:33.267 に答える