milkcocoa のsdkを作る話
TRANSCRIPT
Milkcocoaなプラグインを開発する話
--Milkcocoa の現在とこれからと --
Milkcocoa meetup Vol.8 Milkcocoa オジサン #1 2016/3/11
?
自己紹介• 山本 允葵
(Masaki Yamamoto)
えむにわ @m2wasabi
Milkcocoa オジサン (n-1) 号 ( つらい )クソザコハッカー
本日の概要• 拙作ライブラリの紹介
Milkcocoa for RPG ツクール MV Milkcocoa for Unity
• Milkcocoa クライアントの中身と現状 Milkcocoa クライアントの実装状況 Milkcocoa クライアントの通信プロトコル
拙作ライブラリの紹介 1RPG ツクール MV 用 Milkcocoa プラグイン
RPGツクールでマルチプレイできます。http://qiita.com/m2wasabi/items/267b57d2b6c90ce93ad2
拙作ライブラリの紹介 2Unity 用 Milkcocoa SDK
Unityでチャットアプリ
https://github.com/m2wasabi/milkcocoa-client-unity
使い方 (1/2)• Milkcocoa のプレハブを、 hierarchy に投げ込む
• App_ID と datapath を任意に変更する
• 任意の場所から呼び出す
使い方 (2/2)
Milkcocoa.Milkcocoa.OnSend(Action<MilkcocoaEvent> callback);
Milkcocoa.Milkcocoa.Send(JSONObject data);
Milkcocoa.Milkcocoa.OnPush(Action<MilkcocoaEvent> callback);
Milkcocoa.Milkcocoa.Push(JSONObject data);
Milkcocoa.Milkcocoa.Off(string event,Action<MilkcocoaEvent> callback);
実装されている関数
On ~関数にコールバックを宣言すればどこからでも呼び出せる
名前空間とクラス名で 2 回言うのがダサい ( 改善します )
Milkcocoaクライアントの中身と現状
Milkcocoaの機能
リアルタイム通信
データストア
ユーザー認証
send() on()
push() set() get() stream() history()
user() authWithToken() logout()
API 認証 connectWithApiKey()
Milkcocoaクライアントの実装状況platform メンテ
ナリアルタイム通信
データストア
ユーザー認証
API 認証
JavaScript TR ○ ◎ ◎ ○Node.js TR ○ ◎ ◎ ○Android TR ○ ◎ ◎Swift(β 版 ) TR ○ ○※ ○python TR ○ ○※Arduino TR ○ ○※ ○ESP8266 TR ○ ○※ ○mbed JKsoft ○ ○※ ○Unity(C#) m2w ○ ○※RPGMV m2w ○
※ push API のみの実装言語 モバイル IoT その他
Milkcocoaクライアントのリンクまとめplatform URL
JavaScript https://mlkcca.com/document/api-js.html
Node.js https://www.npmjs.com/package/milkcocoa
Android https://github.com/milk-cocoa/milkcocoa_for_android
Swift(β 版 ) https://github.com/milk-cocoa/milkcocoa-swift-sdk
python https://github.com/milk-cocoa/python_sdk
Arduino https://github.com/milk-cocoa/Milkcocoa_Arduino_SDK
ESP8266 https://github.com/milk-cocoa/Milkcocoa_ESP8266_SDK
mbed https://developer.mbed.org/users/jksoft/code/Milkcocoa/
Unity(C#) https://github.com/m2wasabi/milkcocoa-client-unity
RPGMV https://github.com/m2wasabi/milkcocoa-rpgmv-plugin
Milkcocoaの通信プロトコル
• リアルタイム通信部分はMQTT を使って行っている
MQTT 接続のコード ( 一例 )
mqttClient = new MqttClient(appId + ".mlkcca.com");mqttClient.Connect(clientId, "sdammy", appId);
MQTT の topic
/app_id/DataStorePath/send/app_id/DataStorePath/push
Milkcocoaの通信プロトコル
• リアルタイム通信部分はMQTT を使って行っている
MQTT の data
{“path”:”DataStorePath”,“params”:{JSONData},“r”:seq}
1,2,3,…..
これだけ分かれば、 send と push と on は実装できる!
Milkcocoaの通信プロトコル
• それ以外の部分は調べ切れていない = 公開された良いソースが存在しない。
• 考えられる方法 JavaScript の難読化を紐解く Android の jar をバラす
時間の無駄しそうなのでやらない。 |仕様公開できそうなんでしょうか? |д ゚ )
結び
なんか色々作ってるけど、ライブラリなんかより
面白いもの作った人が勝ちだよね。
Just create something!