0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GCP Cloud IoT CoreにHTTPで接続する

Last updated at Posted at 2017-12-22

基本的な流れ

1回のリクエストを送る度に:

  1. JWTトークンを生成
  2. 認証用のHTTPリクエストを /config に送信
  3. publishかデバイスの状態を変更するリクエストを送る。
    (1で生成したJWTトークンはここで破棄する。詳しくは↓で。)

というMQTTとは違いかなり複雑な手順が必要になります。
1回の処理をするために2回もHTTPリクエストを送らないといけないので、テスト目的や頻度の少ない用途でしか難しそうです。

JWTの生成ができれば設定などがMQTTよりは楽ではあるんですが、使い所がわからないので、何かしら原因がわかりづらいエラーが出た時に切り分けるときにしか使えないかもしれないです...。

注意点など

まずは送信時のタイムアウトを短く設定するのをやめましょうというのを言いたいことですね。
MQTTの接続時もやってしまったんですが、 us-central1 という太平洋をまたいだリージョンにつないでいたんですが、1秒以下に設定してしまうとけっこうタイムアウトします...。
わたしはこれでデバッグ時間をとても無駄にしました...。

どうやら、Google側ではそれほどHTTPを積極的にサポートする気がないので、ちょいちょいよくわからない仕様があります。
local_version パラメーターの値がドキュメントサンプルとで食い違っていたりします。
また、サンプルが不安定なのかけっこう高頻度で書き換わっているように見受けられます。

今回特に、なぜ毎回2回もリクエストを送らないといけないかというのが、謎です。
JWTの期限が切れるまで使いまわせる気もするんですが、nodeのexampleを動かすとどうもうまくいきません。
2回目のリクエストを送るとOAuth2準拠のリクエストと間違えられたり、beta版とはいえサンプルと連動したテストをしているのか不安です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?