UWPアプリから利用できる、Milkcocoa SDKの使い方を解説します。
経緯
名古屋版IoT縛りの勉強会! IoTLT vol1でMilkcocoaを知りました。
上記で知り合った、ウフル川野氏に聞いたところ、Win10 IoT Core向けのSDKは無いということだったので、作ることに。

動作確認
- UWP / Windows 10 Professional / Surface Pro 2
- UWP / Windows 10 Mobile / MADOSMA
- UWP / Windows 10 IoT Core / Raspberry Pi 2/3
- WPF / Windows 10 Professional / Surface Pro 2
- Console / Windows 10 Professional / Surface Pro 2
まだIoTCoreで動作確認していなかった、、、。
動きました。(^O^)/
ニーズがあれば、、、WPFやWinFormといった.NET Frameworkにも対応したいと思っています。
.NET Frameworkに対応しました。
SDKのインストール方法
(nugetにアップロードしてありますので)Visual Studioのnugetパッケージマネージャーコンソールで、
Install-Package Milkcocoa
を実行してください。
本SDKのパッケージページはこちらです。
プログラミング(送信編)
Milkcocoaサイトのdashboardで”アプリ”を作ってください。
UWPアプリからは、app_id(赤枠部分)を使って”アプリ”に接続しますので、メモしておきましょう。
UWPアプリでは、Milkcocoaクラスをインスタンス化するときに、app_idを指定します。".mlkcca.com"を忘れないように。
private Milkcocoa.Milkcocoa Milkcocoa;
Milkcocoa = new Milkcocoa.Milkcocoa("iceinixlzq3.mlkcca.com");
dataStoreメソッドにデータストアのパスを指定してDataStoreインスタンスを取得し、pushメソッドで送信します。
パスは"/"区切りで階層指定できます。
pushメソッドの引数はdynamic型で、自動的にJSON形式に変換してデータストアに送ります。
Milkcocoa.dataStore("message").push(new { content = "My first data!" });
dashboardで確認すると、データストアにJSON形式で格納されたことがわかります。
プログラミング(受信編)
書いている途中。
void MilkcocoaCallback(Milkcocoa.MilkcocoaDataStoreEventArgs e)
{
System.Diagnostics.Debug.WriteLine(string.Format("{0:HH:mm:ss.fff} Sub {1}", DateTime.Now, e.path));
}
Milkcocoa.dataStore("message").on("push", MilkcocoaCallback);
サンプルプログラム
githubにサンプルプログラムを公開しています。
対応しているMilkcocoa API
2016/8/27時点のMilkcocoa APIリファレンスに対する対応一覧です。
| クラス | メソッド | 対応 | 補足 |
|---|---|---|---|
| Milkcocoa | new Milkcocoa() | ○ | secureで暗号化を指定。 |
| connectWithApiKey() | × | ||
| dataStore() | ○ | ||
| authWithToken() | × | ||
| logout() | × | ||
| user() | × | ||
| MakeHostString() | ☆ | v1.0追加機能。(@Fumiya_Kumeさんthx) | |
| DataStore | push() | ○ | |
| set() | × | ||
| remove() | × | ||
| send() | ○ | ||
| on() | ○ | ||
| off() | ○ | ||
| get() | × | ||
| stream() | × | ||
| history() | ○ | ||
| child() | × | ||
| Stream | 対応していません。m(__)m | ||
| History | sort() | ○ | |
| size() | × | ||
| limit() | ○ | ||
| span() | × | ||
| on() | × | ||
| run() | ○ |
改定履歴
v1.3
- Milkcocoaサーバーとの接続を暗号化通信に変更しました。コンストラクタのsecureで暗号化無しも可能。
v1.2
- .NET Frameworkに対応しました。v4.5以降で使用できます。
v1.1
- Releaseビルドのとき、イベントを受信するとMissingMetadataExceptionに対処しました。#1


