WebRTCOpenTokのチュートリアルやってみたこんにちは、@24guchiaです。入社エントリーにある通り、bellFaceに入社しました。bellFace株式会社に入社しましたbellFaceはOpenTokを使っているので、チュートリアルをニート期間中にやってみましたのでまとめておきます。最新の情報はドキュメントを参照してください。WebRTCレバレジーズ株式会社を退職しましたこんにちは、@24guchiaです。タイトルの通り、7年勤めたレバレジーズ株式会社を退職しました。参加レポートこんにちは、@24guchiaです。先日参加したWebRTCミートアップの参加レポートです。https://atnd.org/events/105581聞く側兼、話す側でした。このイベント、話す側もしたのは年始に書いた記事でTwilio以外のコミュニティに顔出ししたいと書いた目標のためです。18/19の振り返りとこれから引き続きやっていきたい。セミナーWebRTCについて調べたWebRTCについて調べたこんにちは、@24guchiaです。Webの記事何本かと本2冊買って読んでみたので、一度、現状の理解を書いてみます。ちなみに買った本は下の本と、わか(った気にな)るWebRTCの電子版です。https://booth.pm/ja/items/504677読む順番としては、わか(った気にな)るWebRTCを読んで、ざっくり概要を頭に入れてわかった気になってから、リックテレコムのWebRTCの本を読むと良いと思います。リックテレコムから入ると心が折れること間違い無し。最近、リックテレコムから販売されている本を買うことが増えてきた。この記事で分かることWebRTCってそもそも何か、どういうところで使われてて、どんなプロトコルが用意されているかが分か(った気にな)るようになります。なんで調べたの?Twilioを使うにあたって、Twilioがそのあたり難しい部分を吸収したライブラリやSDKを用意してくれてるけど、デバッグするにあたってあまりにも分からないことが多すぎたため。最近ではiOS11からWebRTC対応されスマホ全般で使える技術となったので、Web系の開発をしている人は押さえておくべき技術になっていくでしょう。Communicationの略。名前の通り、ブラウザでのリアルタイム性を持つコミュニケーション全般を取り扱います。コミュニケーションは具体的に、音声通話や動画(ビデオチャット)などを指します。上記コミュニケーションを行える点です。電話機や専用のソフトウェアは必要なくなります。WebRTCを使っているサービスは何がある?Twilioappear.inSlack音声通話などがあります。使ったことがあるサービスがあると思います。次に詳細な説明を書きますピア同士のデータ交換データ交換によって、音声通話やビデオチャットが可能になります接続の終了ピア同士の接続の確立って難しそうだね?はい、難しいですね接続の確立について、オファーアンサーネゴシエーションというローカルとリモートの設定を交換する手法があります。接続を試みる側がどのメディアどのデコードで送るかをオファーとして送る受け手側は、送られたオファーに対して、対応可能かと他に使いたいものリストをアンサーとしてオファー側に送るアンサーを受取、各ピア同士で受け取った情報を設定することでデータ交換が行えるようになるネットワークの制限セキュリティを高めるためのファイアウォールやNATの存在が接続の確立にあたっては障害となる。その回避を行うため、特別なプロトコルが用意されています。Translatorの略。IPアドレスは有限の資源であり、資源の有効活用のために使われる。グローバルIPをNAT機能持ちルータで、ルータ内のプライベートIPとの変換を行う技術。NAPTであることがほとんどで、ポートの変換も行うことが多い。正確にはNAPTだけど、一旦NATで統一します。ピア同士が接続されるWebRTCだが、NATの存在のため、接続先ピアがどのプライベートIPを持っているかが外側からは分からないため、下記NAT越えが行われる。ホールパンチという手法でNATを透過したテストパケットを送れるかどうかを試す。何?NATの外から、プライベートIPアドレスとポート番号のペアを知るために行われる手法。具体的には下記手法を試していく。Establishmentの略。NAT越えを行うための手法の一つ。ICEでは下記を行う。IPアドレスとポート番号のペアを集めるピア同士がペアを交換するホールパンチを試す繋がるペアでデータ交換を行う上記が純粋な手法で、よくあるICEではSTUNプロトコルとTURNプロトコルを使い、ピア同士の接続の確立を試みます。VanillaとTrickleという拡張がある。何?標準のICEを指す。拡張であるTrickleが出来たため、標準がVanillaと呼ばれる。VanillaはすべてのIPアドレスとポート番号のペアを収集してからすべて接続を試し、接続確立されたものから使用するペアを選択する。バニラという単語自体には標準という意味がある。ICEという名前のためのシャレみたいなもんでしょうね。何?標準のICEに対し、拡張されたICEを指す。接続確立までがVanillaよりも速くできる可能性がある。使用する際には最新の情報を調べてください。Trickleは滴り落ちるという意味なので、ペアを少しずつ試すという点がアイスが滴り落ちるのと様子に似ているからこの名前なんだと思います。