狠狠撸

狠狠撸Share a Scribd company logo
WebRTC
面接後に評価を入力
そもそも面接中にメモを残すのは話に集中できなくてきつい
でもメモ残しておかないと忘れちゃう
困った???
考える
面接を動画に残せば解決?
文章の書き起こしをしたり、あとで見返したりしたい!
サービスに組み込みたい!
[RecordRTC] http://suzannewang.com/recordrtc/
RecordRTC: WebRTC JavaScript Library
for Audio+Video+Screen Recording
RecordRTC????
WebRTC????
WebRTC is ...
Web
Real
Time
Communication
の略
WebRTC is ...
ブラウザ間で映像や音声のやりとりをP2Pで行うための仕組み
WebSocketと違いやり取り自体にサーバーを要しない
やり取り自体はP2PでやればOKなのでサーバーを要しないが
通信する相手の情報を仕入れるため(シグナリング)にシグナリングサーバーが必要となる
WebRTC is ...
P2P is ...
P2Pの基礎
P2P: PeerToPeerの略
WinMX, Winny, Share, BitTorrent...etcいろいろあった
Wikipediaの内容が詳しい https://ja.wikipedia.org/wiki/Peer_to_Peer
“複数の端末間で通信を行う際のアーキテクチャのひとつで、対等の者(Peer、ピア)同士が
通信をすることを特徴とする通信方式、通信モデル、あるいは、通信技術の一分野を指す。”
P2Pを複数人で行う場合フルメッシュ接続を用いることが一般的
フルメッシュ接続
つながりうるクライアントすべてを繋ぐ方式
フルメッシュ接続の罠
シグナリング後は基本的にはブラウザ間での通信(P2P)で良いが、フルメッシュ接続で複
数人と通信を行うとなるとその負荷は接続数が増えるごとに増す
Lower the load of Client...
Selective Forwarding Unit
サーバーに映像?音声を送信し、各クライアントへの配信はサーバーが行う方式
サーバーに負荷がかかるものの、クライアントの負荷は低減することができる
Signaling Server
[WebRTCに使われるP2Pの技術] https://tjun.org/2013/12/14/webrtc_p2p/
https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/#what-is-signaling
● Session control messages used to open or close communication.
● セッションのコントロールメッセージ。接続の開始や終了を相手に知らせる。
● Error messages.
● エラーメッセージ
● Media metadata such as codecs and codec settings, bandwidth and media types.
● 接続で使用するメディアのメタデータ。例えば、コーデックや帯域、メディアの種類
など。
● Key data, used to establish secure connections.
● セキュアな接続を構築するための、鍵情報
● Network data, such as a host's IP address and port as seen by the outside world.
● ネットワーク情報。例えばホストのIPアドレスとポート番号など。
Signaling Server
Session Description Protocol format (SDP)
を用いて情報を交換する
How to P2P...
P2Pを行うには相手のIPアドレスを知る必要がある
ところがどっこい、NAT外の相手のグローバルIPはわかってもプライベートIPはわからない
ブラウザ間(P2P)通信を実現するために
相手のプライベートIPを知るためにはNAT越えが必要となる
[【初心者向け】STUN/TURNサーバをざっくり解説してみた]
https://qiita.com/okyk/items/a405f827e23cb9ef3bde
NATを越える
NAT
(Network Address Translation)
ネットワークアドレス変換(ネットワークアドレスへんかん)、NAT(Network Address Translation)とは、
インターネットプロトコルによって構築されたコンピュータネットワークにおいて、パケットヘッダに含まれ
るIPアドレスを、別のIPアドレスに変換する技術である。
プライベートネットワーク環境下でプライベートIPアドレスを持つホストから、グローバルIPアドレスを持つ
ゲートウェイを通して、インターネットにアクセスする際に、プライベートIPアドレスをグローバルIPアドレ
スに変換するために利用されることが多い。
また、IPアドレスに加え、ポート番号の変換も行うものをNAPT(Network Address Port Translation、またはIP
マスカレード)と呼ぶ。今日では、NATと言えばNAPTのことを指すのが一般的である。(#NATとNAPTも参
照)
https://ja.wikipedia.org/wiki/ネットワークアドレス変換
STUNサーバーを用いることで自分自身のグローバルIPアドレスを手に入れることができる
STUN
(Session Traversal Utilities for NATs)
セキュリティ
NATには、セキュリティを高める効果もある。グローバルIPアドレスをプライベートIPアドレスに変換すると
きに、パケットフィルタリング(パケット(syn)の条件を指定して制限)ができるためである。実際には、プ
ライベートIPアドレスを割り当てられたホストには、特別な設定をしない限り外部のネットワークからは接続
できないことが多い。こうした特徴から、NATは簡易的なファイアウォールの一種と考えることもできる
https://ja.wikipedia.org/wiki/ネットワークアドレス変換#セキュリティ
STUNだけではNAT越えには不十分
基本的にPortの開放はセキュリティリスクとなりうるため基本的には穴は開けないほうが良
い
Firewallを越えなければいけない
Go beyond the Firewall...
TURN
(Traversal Using Relay around NAT)
TURN over TCP
port 80, 443は開いているのでそれを利用して擬似的に直接通信させる
TURNサーバーにかなりの負荷がかかる
STUN + TURN ≒ ICE
[WebRTCのICEについて知る] /iwashi86/webrtcice/34
Interactive Connectivity Establishment
WebRTC
どう考え得ても大変そう
企業で使えるか?
ブラウザによって実装が違ったり
そもそもネットワークを越えられるか怪しかったり
[WebRTCにおけるNAT越えの課題へのアプローチ]
https://qiita.com/udonchan/items/693e43b13269207f904a
もともとやりたかったのは
どこかの誰かと通信したいわけではないので今まで述べたことは何の問題でもない
単純に面接を記録してS3にあげて管理とかできれば良い
WebRTCやりたかったら
時雨堂の方がめちゃくちゃいい感じにまとめているので読むと良い
[WebRTCコトハジメ] https://gist.github.com/voluntas/67e5a26915751226fdcf
Cost Too Much...
Twillioで良い
https://twilio.kddi-web.com/function/voice-video/
録画できるかどうかは知らない

More Related Content

奥别产搁罢颁についてざっと