TwilioのIP Messagingを
使ってみた
とりあえず試作してみて気づいたこと
DISCLAIMER
IP Messagingはまだ正式にサービス開始されていません。
以下の内容は今後も正しいとは限らない、それどころかどんなに頑張っても近いうちに必ず時
代遅れの誤った情報になります。
つきましては、語のいかなる意味においても、本発表はその内容の正しさは保証されていませ
ん。IP Messagingのご利用の際には必ずご自身にて最新の状況をお確かめ下さい。
about me
yagi@toshi.ro
フリーランスの開発者
スマートフォンアプリやウェブサービス
Twilio歴3年半くらい
実稼働するサービスから色々なデモまで広く薄く
好きな言葉「人の知られないように笑いなさい」
好きなTwilio製品 STUN/TURN
IP Messagingとは
リアルタイムメッセージ配信
今更なので説明は省略
Pusherみたいな…
Firebaseみたいな…
PubNubみたいな…
Socket.io + RedisのPubSubみたいな…
PhoenixのChannelみたいな…
(本題)IP Messagingを動かしてみたら
気づいた点を列挙
IP Messagingを動かしてみたら
US(east)のAWSに繋がった
リアルタイムという言葉が悪い
2つのセッションが作成される
認証関連(AccessManagerによるtokenの管理)
リアルタイムメッセージング用のWebSocket
IP Messagingを動かしてみたら
AccessManager
https://CDSのエンドポイント/接続毎のユニークなIDに接続してセッション開始
認証はX-Twilio-Tokenヘッダ
IP Messagingを動かしてみたら
WebSocket
wss://エンドポイント/にGETリクエストでtokenを送っている(いいのか?)
本ページがhttpであってもTLS/SSLが使われているのが好感
リバースプロキシらしきnginxから先の構成は不明
IP Messagingを動かしてみたら
P2Pモデル
Twilio Videoなど
IP Messagingを動かしてみたら
Channel A Channel B Channel C
Twilio IPM Service
PubSub
運用上の注意点
tokenはあんまり隠されていない
tokenを発行するサーバ大事
そこはちゃんと認証する
tokenを発行するサーバをフルアクセス可能にしてはいけない
PubSubは成りすましに注意が必要な仕組み
所感
P2Pではないのでスケールしやすい
複数のチャンネルにSubscribeしてもセッションは一本だけ
テキストデータのみ(そのうちデータ送信も対応?)
完全にセキュアな運用を求めるなら自前でおやんなさい
その他もろもろ
0.1秒毎にメッセージを送信し続けたら投稿が遮断された
しばらく放置してからセッションを復帰させる方法が明確でない
その他もろもろ
JSクライアントのドキュメントにはtokenのupdate方法が載っていない
同じtokenでupdateTokenすると拒否されるので再取得?
Parseのbecomeみたいな機能が欲しい
REST APIとクライアントの機能を同一ユーザとして実行できる
試してみた・1 チャット
ブラウザとスマートフォンでチャット
まあ基本
Appcelerator Titaniumで作ってみた(宣伝)
https://github.com/yagitoshiro/TiTwilioIPMessaging/
試してみた・2 Presence
シグナリング
ユーザーが端末の前にいるかどうかをリアルタイムで通知
チャットサービスの「待機中」「離席中」「オフライン」みたいな…
Twilioの他サービス(音声通話、ビデオ通話)にも応用できる
試してみた・3 位置情報
位置情報を共有してリアルタイムでやりとりする
近くのユーザーを表示
移動すると地図上のアイコンが動く
Geohashと組み合わせる
バッテリーいっぱい食らう
http://qiita.com/yagi_/items/5283249036fe
af655b16
終わり
have fun!

TwilioのIP Messagingを使ってみた