Transcript
Page 1: TwilioのIP Messagingを使ってみた

Twilio の IP Messaging を使ってみたとりあえず試作してみて気づいたこと

Page 2: TwilioのIP Messagingを使ってみた

DISCLAIMER IP Messaging はまだ正式にサービス開始されていません。 以下の内容は今後も正しいとは限らない、それどころかどんなに頑張っても近いうちに必ず時代遅れの誤った情報になります。 つきましては、語のいかなる意味においても、本発表はその内容の正しさは保証されていません。 IP Messaging のご利用の際には必ずご自身にて最新の状況をお確かめ下さい。

Page 3: TwilioのIP Messagingを使ってみた

about me [email protected]

フリーランスの開発者 スマートフォンアプリやウェブサービス Twilio 歴 3 年半くらい 実稼働するサービスから色々なデモまで広く薄く 好きな言葉「人の知られないように笑いなさい」 好きな Twilio 製品 STUN/TURN

Page 4: TwilioのIP Messagingを使ってみた

IP Messaging とはリアルタイムメッセージ配信今更なので説明は省略

Pusher みたいな…Firebase みたいな…PubNub みたいな…Socket.io + Redis の PubSub みたいな…Phoenix の Channel みたいな…

Page 5: TwilioのIP Messagingを使ってみた

(本題) IP Messaging を動かしてみたら 気づいた点を列挙

Page 6: TwilioのIP Messagingを使ってみた

IP Messaging を動かしてみたらUS ( east )の AWS に繋がった

リアルタイムという言葉が悪い2つのセッションが作成される

認証関連( AccessManager による token の管理)リアルタイムメッセージング用の WebSocket

Page 7: TwilioのIP Messagingを使ってみた

IP Messaging を動かしてみたらAccessManager

https://CDS のエンドポイント / 接続毎のユニークな ID に接続してセッション開始認証は X-Twilio-Token ヘッダ

Page 8: TwilioのIP Messagingを使ってみた

IP Messaging を動かしてみたらWebSocket

wss:// エンドポイント / に GET リクエストで token を送っている(いいのか?)本ページが http であっても TLS/SSL が使われているのが好感

リバースプロキシらしき nginx から先の構成は不明

Page 9: TwilioのIP Messagingを使ってみた

IP Messaging を動かしてみたらP2P モデルTwilio Video など

Page 10: TwilioのIP Messagingを使ってみた

IP Messaging を動かしてみたらChannel A Channel B Channel C

Twilio IPM ServicePubSub

Page 11: TwilioのIP Messagingを使ってみた

運用上の注意点token はあんまり隠されていないtoken を発行するサーバ大事そこはちゃんと認証するtoken を発行するサーバをフルアクセス可能にしてはいけないPubSub は成りすましに注意が必要な仕組み

Page 12: TwilioのIP Messagingを使ってみた

所感P2P ではないのでスケールしやすい複数のチャンネルに Subscribe してもセッションは一本だけテキストデータのみ(そのうちデータ送信も対応?)完全にセキュアな運用を求めるなら自前でおやんなさい

Page 13: TwilioのIP Messagingを使ってみた

その他もろもろ0.1 秒毎にメッセージを送信し続けたら投稿が遮断されたしばらく放置してからセッションを復帰させる方法が明確でない

Page 14: TwilioのIP Messagingを使ってみた

その他もろもろJS クライアントのドキュメントには token の update 方法が載っていない

同じ token で updateToken すると拒否されるので再取得?Parse の become みたいな機能が欲しい

REST API とクライアントの機能を同一ユーザとして実行できる

Page 15: TwilioのIP Messagingを使ってみた

試してみた・1 チャット ブラウザとスマートフォンでチャットまあ基本Appcelerator Titanium で作ってみた(宣伝)https://github.com/yagitoshiro/TiTwilioIPMessaging/

Page 16: TwilioのIP Messagingを使ってみた

試してみた・2 Presence シグナリング ユーザーが端末の前にいるかどうかをリアルタイムで通知チャットサービスの「待機中」「離席中」「オフライン」みたいな…Twilio の他サービス(音声通話、ビデオ通話)にも応用できる

Page 17: TwilioのIP Messagingを使ってみた

試してみた・3 位置情報 位置情報を共有してリアルタイムでやりとりする近くのユーザーを表示移動すると地図上のアイコンが動くGeohash と組み合わせるバッテリーいっぱい食らうhttp://qiita.com/yagi_/items/5283249036feaf655b16

Page 18: TwilioのIP Messagingを使ってみた

終わり have fun!