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