B2Bアプリではサポートが大事です。トレタでは24H/365Dのサポートを行っていますが、電話だけでは相手の状況が分からず困難です。そこでアプリの画面をリモートから見ること、相手の画面に手書きする事のできる「ミレタ」を開発し搭載しました。このシステムはCocoaPodsにしてあり導入が数行で行えること、またまだ導入事例の少ないWebRTCを採用しており技術的にも面白い内容になっています。
iOSアプリのリモートサポートツール「ミレタ」の作り方
サーバーサイドやっていますがSwiftもくもく会をやったりしています。
こうした中で作ったツールをご紹介します。
デバイスの画面をリモートでブラウザから見られるツール。
手書きで指示をしたり出来る。
設定やOSのバージョンも確認できる。
WebRTCプロトコルでつながっています。聞いたことあったとしてもビデオ用として聞いたことがあるのではないでしょうか。ブラウザP2P通信技術。
WebKitでも開発が進んでいる。
なんとネイティブSDKがある。
ファイルなどのビットストリームのやり取りも出来る。ブラウザからドラッグアンドドロップでiOSにファイル送信なども出来る。
問題はどうやって相手のIPアドレスを知るか。
間にIP交換サーバーを用意する。そしてファイアウォールに穴を開けるためにSTUNを使う。ファイアウォールに一時的に特定の間だけ穴を開けてP2P接続する。
STUN・シグナリングサーバーとSDKをなんとNTTが用意してくれている!
最短これぐらいでP2P通信が出来る。
もう仕組みがわかったと思います。
2秒に1回ぐらいスクリーンショットを撮って送っている。ブラウザはキャンバスでスクリーンショットPNGで送って、iOSに送って上に描画している。
でもセキュリティなどは考える必要がある
Peer ID を交換して Connect を押すことでセッションを開始する。
中継サーバーを通すとレイテンシーが大きくなる。WebRTCを使えばレイテンシーが少ない。
WebRTCを使うとiOS, Android, ブラウザ間で直接データのやり取りができるので、何か皆さんが作るきっかけになれば良いなと思います。
TORETAではこういうことに挑戦しています。