ごく最近、AppleはSafariでのWebRTCのサポートを発表しました。 噂は数年前からありましたが、今ではわかっています:秋には、WebRTCはすべての主要なブラウザ(Chrome、Firefox、Safari、Edge)で利用できるようになります。 落とし穴と非互換性 。 このテクノロジーは非常に優れており、ブラウザーの音声、ビデオ、画面、または任意のデータ間でピアツーピアを転送できます。 Skype for Web、ハングアウト、その他の有名なコミュニケーターを使用しています。 また、Safariの新しいバージョンでは、WebRTC自体に加えて、それを使用する開発者に多くの便利な機能が追加されました。これについては、後で説明します。
両方のAPIバージョンのサポート
過去数年間で、WebRTC APIは完全に変更されました:コールバックとメディアストリームを使用する古いバージョンは廃止されたと宣言され、代わりに、ブラウザの作成者は約束とメディアトラックを使用して新しいバージョンを作成するように招待されています。 Firefoxは古いAPIと新しいAPIの両方を完全にサポートしていますが、Chromeは銅線トラックを操作するためのメソッドをまだ実装していません。 Safari開発者は興味深いソリューションを選択しました。ブラウザーは両方のAPIをサポートしますが、エンドユーザー向けのバージョンでは、新しいAPIのみが利用可能になります。 そして、古いものは特別なメニューを通してデバッグのために有効にすることができます:
HTTPSのみ
初心者のWebRTC開発者は、伝統的に「例のように数行のJavaScriptを書きましたが、機能しません」と出くわします。 ブラウザの製造元は、デバイスからの音声やビデオの危険なキャプチャからユーザーを保護しようとしています。 また、APIの使用に追加の制限が導入されます。 たとえば、ページがファイルからロードされた場合、WebRTCはChromeで機能しません。 そして、Safari開発者はさらに進んで、HTTPSサポートのないサイトのWebRTCを禁止しました! ローカルデバッグの場合、この制限は同じメニューから削除できます。
ローカルIPアドレスのスキャンダル
少し前まで、発見された「脆弱性」についての議論がインターネット上で行われました。WebRTCは、ユーザーがカメラ、マイクへのアクセスを許可する前にコンピューターのローカルIPアドレスを取得し、一般に何らかの接続を確立することに同意しました。 また、ローカルIPアドレスは、ユーザーをより正確にターゲットにし、より多くの広告を表示するもう1つの機会です。
Safariはこれを考慮に入れ、デフォルトではWebRTCはローカルIPアドレスを使用してピアツーピア接続を確立しません。 STUNサーバーとの通信後に受信した「外部」のみ。 ユーザーがカメラまたはマイクへのアクセスを許可した場合、制限は解除されます。 これは一般に論理的であり、WebRTCを使用して追加のターゲティングデータを取得しようとするのではなく、開発者が通信に関するコードを記述することを奨励します。 この制限は、開発者のメニューから無効にすることもできます。
ビデオおよび音声ジェネレーターのデバッグ
ラップトップカメラで自分自身をデバッグすることはまだ喜びです。 そのため、Safari開発者は、同じメニューに「偽のビデオ」またはサウンドを有効にするオプションを追加しました。ビデオの代わりに、音声ではなくテレビのスクリーンセーバーが送信されます。 自動テストや通信チェックに非常に便利です。 ちなみに、Firefoxでは、このモードはWebRTCの初期化時に特別なフラグ「偽物」として以前から含まれていました。
注目を集めるための写真をここで撮影し 、Safariメニューの図をここで撮影します。