web rtc conference資料
TRANSCRIPT
![Page 1: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/1.jpg)
WebRTC Conference Japan~スマホチャットアプリにおけるWebRTC通話アプリ開発事例~
WebRTC Conference Japan~スマホチャットアプリにおけるWebRTC通話アプリ開発事例~
![Page 2: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/2.jpg)
自己紹介 -Introduction-
2 / 29
● 名前 : 山中夏樹 [email protected]
● 所属 : TriFort Inc.
● 肩書 : ネイティブアプリ(iOS・Android)エンジニア
● 業務内容:
自社開発にて主にチャットアプリやリアルタイムギルドバトルなどを担当
Node.jsによるサーバーサイドやiOS・Androidアプリの開発を手掛けてきた
![Page 3: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/3.jpg)
● 知見 / ノウハウの共有
○ 自社で扱った通話アプリ開発の事例紹介
○ 開発する上で苦労した点など
○ 発表者はエンジニアなので、若干技術よりのお話
今日の目的 -Purpose-
3 / 29
![Page 4: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/4.jpg)
WebRTC事例紹介Introducing Cases of WebRTC
4 / 29
![Page 5: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/5.jpg)
● 若者向けチャットツールで、
2014年よりWebRTCを用いた
下記機能を実装
自社WebRTC事例 -Cases-
通話
ビデオ通話
生放送通話機能Sample
5 / 29
![Page 6: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/6.jpg)
● 若者向けチャットツールで、
2014年よりWebRTCを用いた
下記機能を実装
自社WebRTC事例 -Cases-
通話
ビデオ通話
生放送通話機能Sample
6 / 29
![Page 7: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/7.jpg)
音声RealTime配信+Chat
生放送機能 -Live function-
作成ページ 配信ページ 7 / 29
チャットも送れる!
![Page 8: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/8.jpg)
8
なぜWebRTCかWhy WebRTC?
/ 29
![Page 9: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/9.jpg)
● 他技術との比較
WebRTCの選定理由 -Reason for selection-
9 / 29
※それぞれサンプルアプリをビルドし比較
![Page 10: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/10.jpg)
● 通話接続チェック
WebRTCの選定理由 -Reason for selection-
10 / 29
iOS
Wifi
オフィスの4階
Android
3G回線
オフィスの5階
などして、実際の接続性を試す音がクリアに聞こえるのはどちらかもチェック
![Page 11: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/11.jpg)
WebRTCの選定理由 -Reason for selection-
11 / 29
● 音質や接続性にそこまでの差異がなかった
● PC対応の容易さや既存システムで使っていたNode.jsとの
親和性などからWebRTCを選択
![Page 12: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/12.jpg)
通話の実装Implementation of phone call
with WebRTC
12 / 29
![Page 13: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/13.jpg)
通話の待ち受けについて -Incoming phone call-
● 例:WebRTC以外の通話サンプルの場合
○ 着信を受け取る為、常時裏でサーバーに接続
○ アプリの数だけ常にサーバーと接続する
13 / 29
膨大なインフラコスト
![Page 14: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/14.jpg)
● 弊社アプリでの実装
○ 常時接続しない
○ 着信通知をPush通知により実装
インフラコストの削減
通話の待ち受けについて -Incoming phone call-
14 / 29
![Page 15: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/15.jpg)
● 通話をしながらチャットや他の
アプリを使用できるマルチタスク機能
も実装した
バックグラウンドで通話 -InApp phone call-
ゲームやチャットをやりながら通話可能
15 / 29
![Page 16: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/16.jpg)
苦労した点Implementation difficulties
16 / 29
![Page 17: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/17.jpg)
● 2016年2月現在でスマホブラウザはまだWebRTCを一部サ
ポートしていない
前提:WebRTCのスマホ対応状況
17 / 29
![Page 18: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/18.jpg)
● もともとブラウザの技術であるWebRTCを
Android・iOSのネイティブアプリに組み込めるGoogle開発の
ライブラリ
● ソースのダウンロード・ビルドだけで4~5時間かかる
● 特にAndroidはそのまま組み込んでも動かない端末がある
WebRTCのネイティブライブラリ -Library-
18 / 29
![Page 19: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/19.jpg)
● 開発中、接続しているように見えても音声が流れないというよ
うなことがよくある
● 人の聴覚によるデバッグが不可欠
通話のデバッグ -Debug-
ひたすら一人通話を繰り返してデバッグ
タブレットで通話してる図
19 / 29
![Page 20: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/20.jpg)
・WebRTCは基本ユーザー同士がP2P(サーバーを介さず直接)で繋がる
接続性について -Connectivity-
20 / 29
壁1:NAT等のファイアウォール
壁2:スマホによくあるネットの瞬断
・P2Pで接続するまでの様々な 壁
![Page 21: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/21.jpg)
● スマホは基地局が変更されたりに備えて、再接続処理が必
須
● PeerJS等だとやってくれない
● 自社で一から実装
● Push受信〜P2Pで接続、の間の
どこで切れても再接続するように
接続性の向上 -Improvement of connectivity-
21 / 29
![Page 22: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/22.jpg)
多人数配信についてLive Stream Broadcasting Using
WebRTC
22 / 29
![Page 23: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/23.jpg)
通話:1対1
P2Pでの配信形式の種類 -Delivery format-
生放送:1対N
グループ通話:N対N
23 / 29
![Page 24: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/24.jpg)
・1対Nの生放送
何人まで接続できるのか? -How many can connect-
※これを超えると音質が悪くなったり、繋がらなかったりしだす いずれもP2P、音声のみの場合を想定。TURNやSFU等使うと話は別
・N対Nのグループ通話
7人程度で限界
5人程度で限界
※PCを親としての生放送であれば
30人以上に配信した実績もある
24 / 29
![Page 25: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/25.jpg)
iOSのIPv6対応についてSupporting IPv6 DNS64/NAT64
Networks
25 / 29
![Page 26: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/26.jpg)
● 対応しないとApple審査に通らなくなるとのこと
● 2016年初頭からと言われているがまだ実際に審査に落とされ
た話は聞かない
iOSアプリにおけるIPv6対応について
出典: WWDC15 - Your App and Next Generation Network26 / 29
![Page 27: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/27.jpg)
● 2015/12時点で未対応の様子
https://codereview.webrtc.org/1547883002
○ 自身もAppRTCDemoを動かしたりして動作しない箇所を調査中
○ STUNサーバーにRequestが届かない
WebRTCはどうなのか? -Not compatible yet-
27 / 29
![Page 28: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/28.jpg)
今後の展望Future Work
28 / 29
![Page 29: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/29.jpg)
通話機能SDK化 -Contractor for Developing WebRTC-
● ゲームやチャットなどと親和性の高いSDKとしてパッケージ化
を検討中
● まだ事例はないですが、使ってみたい!という企業様を募集
中です!
29 / 29
![Page 30: Web RTC Conference資料](https://reader031.vdocuments.site/reader031/viewer/2022021502/58f10bd51a28ab466c8b45bf/html5/thumbnails/30.jpg)
以上
ご清聴ありがとうございました
30 / 29