このエントリーをはてなブックマークに追加

MQTT as a Service: Sango のリリースをお手伝いしました

本日 2014年8月29日より、親会社の時雨堂はMQTTをインターネット上で簡単に利用できるサービスである「Sango」を提供開始しました。

https://sango.shiguredo.jp

ダッシュボードはこんな感じで、MQTTへの接続情報が載っています。

../../../_images/sango-dashboard.png

GitHubアカウントがあれば、すぐに使いはじめることが出来ます。現在のところ無料プランだけが提供されており、加えて五百円プランを10月をめどに始める予定です。無料プランはずっと提供する予定です。

詳細はプレスリリースを見ていただくとして、ここでは軽く使い方と中身を紹介します。

Sangoの使い方

SangoはGitHubアカウントで簡単にログインできます。

ログインするとMQTT接続情報として、

- 接続先 : mqtt://<MQTTサーバーのアドレス>:1883
- WebSocket接続先:  ws://<MQTTサーバーのアドレス>:8080/mqtt
- アクセス先トピック: shirou@github/#
- ユーザー名: shirou@github
- パスワード: ひみつ  <-- クリックすると表示されます

が出てきます。各ユーザーに対して、アクセス先トピックが割り振られていることに注意してください。

mosquittoを使ってコマンドラインから簡単に試すことが出来ます。(事前にmosquittoをインストールしてください)

mosquitto_sub \
    -h <MQTTサーバーのアドレス> \
    -u shirou@github \
    -t "shirou@github/#"
    -P <パスワード>

とすると、shirou@github/#に送られたメッセージを受け取れます。各ユーザーに対して割り当てられているトピック以外に送ってもだめなので注意してください。

subを実行しておき、別ターミナルから

echo "MQTT is Cooooool" |
mosquitto_pub \
    -h <MQTTサーバーのアドレス> \
    -u shirou@github \
    -t "shirou@github/#"
    -P <パスワード> \
    -s

とすると、さっきのsubしている部分に表示されます。

Sangoの中身

Sangoは

  • Erlang/OTPで書かれた MQTT Server
  • Go言語で書かれた Webアプリ

の2つの機能で構成されています。弊社ツキノワはこのWebアプリ部分を担当しました。

やってることはたいした事なく、MQTT Server側のAPIを叩くだけです。OAuthもrevelのサイトにサンプルがあり、一瞬で実装できたりしました。

中身の構成

使っているライブラリは以下のとおりです。

revelに関してはrevelの紹介記事を参照してください。

gormですが、結構簡単に使えました。今回はテーブル構造もシンプルなのですが、それでもSQLを一行も書かずに実装できました。

あとは、CLIを作る部分で

を使いました。これも簡単に使えていいですね。

まとめ

「MQTT as a Service: Sango」のリリースのお手伝いをしました。

この記事はSangoの紹介、使い方と、その中身を軽く紹介しました。

MQTTはいろいろな使い道が出来るプロトコルだと思います。Sangoを使ってアイデアを簡単に試してみるのはいかがでしょうか。

今後の展開

現在無料プランしか用意しておりませんが、10月をめどに五百円プランをスタートする予定です。

五百円プランは

  • 同時接続数: 10コネクションまで使用可
  • QoS: 1,2に対応
  • セキュリティ: TLS対応
  • 月間最大メッセージ数: 100,000

というように、さらに実用的に使えるようになる予定です。ご期待ください。