Skip to content

Instantly share code, notes, and snippets.

@53ningen
Created September 5, 2014 13:02
Show Gist options
  • Save 53ningen/b69916c8db0ab7d8d395 to your computer and use it in GitHub Desktop.
Save 53ningen/b69916c8db0ab7d8d395 to your computer and use it in GitHub Desktop.

MQTT Meetup Tokyo

ツキノワ 若山 (@r_rudi)さん

MQTTとは?

  • M2M(machine-to-machine)の接続に使うプロトコル
  • 軽量 pub/sub型

特徴的な仕様

  • 軽量
    • プロトコルオーバーヘッドが小さい
    • 固定ヘッダは2バイト
  • 双方向
    • Pubsh
    • NAT配下でも動作
    • TCPコネクションを維持する
    • コネクションが切れたときの対応もできる
  • QoS
    • 到達可能性を選択できる
    • (0:最高一回, 1:少なくとも一回, 2:正確に一回)
    • メッセージごとにQoSを変更できる
  • Pub/Sub型
  • 階層型Topic
    • 階層構造を/区切りで表現
    • ワイルドカードを用いてPublishできる
  • Will(遺言)
    • 接続が切れた場合に指定のメッセージを送れる
  • Retain
    • 最後に送ったメッセージを保存
    • A-Server-Bの通信でA->Bの最終メッセージを保存してあることにより,最新の情報を得られる.次のPublishまで情報がない状態を防げる.
  • CleanSession
  • 接続が切れている間のメッセージも保存してくれる

MQTTはM2M/IoT向けプロトコル

  1. ネットワークが切れやすい
  2. 電池が小さいため処理間隔が長い

これに対してMQTTは,Will/Retail/CleanSessionで対処する

MQTTを手軽に使えるサービスを開発した

MQTT as a Service: Sango

そのほか

  • メッセージの順番は保証されるのか?
    • されない
  • QoSはサブスクライブ側が優先される

@voluntasさん

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment