WebrTCの台頭とリアルタイムのポイントツーポイント通信を処理するブラウザの能力が強化されたため、建物のリアルタイムアプリケーションがこれまで以上に簡単になります。この記事では、SimplewebrtcとWeBRTCテクノロジーの実装におけるそのアプリケーションを調査し、同じ目標を達成できる他の代替案を紹介します。
Webrtcとピアツーピア通信に関する背景知識が必要な場合は、「Dawn of Webrtc」と「Getusermedia APIの紹介」を読むことをお勧めします。
カスタムWeBRTCアプリケーションの構築が複雑であるため、この記事では段階的なビルドチュートリアルを提供しません。代わりに、信頼できるアプリケーションを構築するために必要なライブラリとサーバーの種類を調べます。独自のアプリケーションを構築するときに参照できる完全なサンプルアプリケーションリンクを提供します。
主にSimpleWebrtcプラットフォームに焦点を当てます。その後、同じ目標を達成するのに役立つ他の商業およびオープンソースの代替品について簡単に説明します。
キーポイント
webrtcとは何ですか?
WeBRTC(Webリアルタイム通信)は、ネットワーク上のリアルタイムビデオ、オーディオ、データストリームの送信、Webブラウザー間のポイントツーポイントリアルタイム通信を可能にするオープンソースプロジェクトです。 Google Chrome、Mozilla Firefox、Safari、Opera、およびその他のクロムベースのブラウザは、この技術をネイティブに実装しています。これは、ユーザーがサードパーティのプラグインやアプリケーションをインストールせずにテクノロジーにアクセスできるため、朗報です。古いブラウザーバージョンとInternet Explorerなどの従来のブラウザにはこのテクノロジーがありません。ユーザーは最新のブラウザを使用する必要があります。サポートされているブラウザの完全なリストを表示できます。
2021年1月、World Wide Web Alliance(W3C)は、候補者の推奨状態から推奨状態にWeBRTC 1.0仕様を変換しました。これは、テクノロジーが10年前に最初にリリースされたことを考えると、並外れた成果です。
WeBRTC仕様は、ブラウザがローカルメディアデバイスにアクセスする方法と、リアルタイムプロトコルのセットを使用してメディアと共通のアプリケーションデータをブラウザに送信する方法をカバーしています。これは、前の記事で説明されている一連のJavaScript APIを介して行います。また、この仕様により、すべての通信が暗号化され、不要な第三者がストリームを盗聴できないことが保証されます。
WebrTCは、シグナリング、ブラウザ間の接続を開始するプロセスなど、すべてをカバーしていないことに注意する必要があります。潜在的な新しい技術的制限を回避するために、コンテンツのこの部分は仕様から省略されています。 2番目の理由は、WeBRTCが主にクライアントテクノロジーであり、サーバーテクノロジーを使用してセッションなどの問題に対処することをお勧めします。
ブラウザシグナリングの仕組み
webrtcは、Webブラウザー間のポイントツーポイント通信として定義されています。現実には、ほとんどのブラウザは、NAT(ネットワークアドレス変換)デバイス(オプションのファイアウォール)の背後にあるコンピューターで実行されます。 NATデバイス(通常はルーターまたはモデム)を使用すると、プライベートIPアドレスを備えたコンピューターが1つのパブリックIPアドレスを介してインターネットに接続できます。
NATデバイスは、IPアドレスを介してインターネット上の悪意のあるユーザーによる直接的な攻撃からパーソナルコンピューターを保護します。残念ながら、プライベートIPアドレスを持つデバイスがインターネット上で別のプライベートIPデバイスに接続することも防止します。
この課題を克服するために、インターネットエンジニアリングタスクフォース(IETF)はICE(インタラクティブ接続確立)プロトコルを提案し、プライベートIPコンピューターがパブリックネットワーク上の他のプライベートコンピューターを発見および接続できるようにしました。これには、両方のクライアントが簡単に接続できるパブリックシグナリングサーバーの使用が含まれます。ピアコンピューターはこのサーバーに接続し、それを使用して、データソースとレシーバーに必要なIPアドレスとポートを交換します。この情報を使用すると、互いに直接接続を確立し、ビデオ、オーディオ、およびデータの送信を開始できます。
これはアニメーションのデモンストレーションです:
画像説明:webrtcシグナル伝達
WeBRTCシグナリングをセットアップするには、ICEフレームワークでは、次の2種類のサーバーを提供する必要があります。1
これはクライアントで実行されているサンプルスクリプトであり、ブラウザがStunサーバーを介して接続を開始できるようにします。このスクリプトにより、サーバーのいずれかが失敗したときに複数のスタンサーバーURLを提供できます。
STUNサーバーを介して確立された接続は、WEBRTC通信の最も理想的で費用対効果の高いタイプです。ユーザーはランニングコストをほとんど発生しません。残念ながら、各ピアは異なるタイプのNATデバイスを使用しているため、一部のユーザーの接続は確立されない場合があります。この場合、ICEプロトコルでは、ターンサーバーと呼ばれる異なるタイプのシグナリングサーバーであるフォールバックを提供する必要があります。ターン(リレーNATを使用して移動)サーバーは、Stunサーバーの拡張機能です。前任者と違うのは、通信セッション全体を処理することです。
基本的に、ピア間の接続を確立した後、あるピアからストリームを受け取り、別のピアに転送し、その逆も同様です。このタイプの通信はより高価であり、ホストはターンサーバーの実行に必要な処理と帯域幅の負荷を支払う必要があります。
以下は、最初にスタンサーバーを含むシグナリングプロセス全体を含むグラフィカルな説明であり、次にフォールバックとしてターンサーバーを含むものです。
画像説明:WeBRTCプロセス全体の完全なアーキテクチャ図を示しています。
カスタムビデオチャットアプリケーションを構築します前述のように、
webrtcプラットフォームのセットアップは複雑になる場合があります。幸いなことに、WeBRTCビデオチャットアプリケーションを簡単にするオールインワンのビジネスプラットフォームがあります。それでは、Simplewebrtcが私たちの負担をどのように和らげることができるか見てみましょう。
SimpleWebrtcは、Reactを使用してカスタムリアルタイムアプリケーションを構築および展開するためのシンプルで費用対効果の高いサービスを開発者に提供するプラットフォームです。具体的には、以下を提供します
写真の説明:talky
写真の説明:Web個別指導アプリ simplewebrtcプラットフォームが提供する主なwebrtcサービスは次のとおりです。
ビデオ、音声、スクリーン共有のセキュリティ転送
小グループ計画の利点は、エンドツーエンドの暗号化を使用できることですが、大規模なグループプランはできないことです。小グループ計画では、セッションの60〜80%がピアツーピア接続であり、メディアストリームはサーバーに触れないようにします。このようなセッションの帯域幅消費の料金はありません。 大規模なグループプランの場合、トラフィックはSFU(選択的転送ユニット)と呼ばれるサーバーを介してルーティングされ、すべてのトラフィックが計算されます。 ほとんどの商業的な代替案(後で簡単に説明する)が請求される
(記事の長さのために次のコンテンツが簡素化され、コア情報とコードの例が保持されます。元のテキストについては、元のドキュメントを参照してください。)
登録後、メールアドレスを確認する必要があります。この手順を完了したら、APIキーを受け取るダッシュボードページにある必要があります。
(代替案の簡単な紹介)
自分自身に尋ねる重要な質問は、独自のカスタムリアルタイムソリューションを構築する価値があるかどうかです。 Webrtcをコアビジネスとして使用する予定がない限り、まずこのテクノロジーの処理経験を持つ会社に相談する必要があるかもしれません。
(FAQパーツが合理化されています)
SimpleWebrtcクライアントライブラリは、ReactおよびReduxエコシステムに依存しています。基本的なスキルが必要です:反応
simplewebrtc.comの登録ページを取得し、新しいアカウントを登録します。 2GBの帯域幅を取得し、ニュースレターにサインアップすると、3GBの帯域幅が追加されます。このクォータは、ビデオチャットアプリケーションを開発およびテストするのに十分でなければなりません。
展開
Simplewebrtc
の代替案
以上がWeBRTCビデオチャットアプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。