サーバーとクライアント間の通信はWebソケットまたは他のネットワークプロトコルを介して行われますが、WebRTCはオーディオとビデオをデコード/エンコードするAPIであると想定していますか? 私は少し混乱しています。WebRTC には独自の通信プロトコルがありますか?
4 に答える
WebRTC には 2 つの側面があります。
getUserMedia
アプリがカメラとマイクのハードウェアにアクセスできるようにするJavaScript API ( )。このアクセスを使用して、ストリームをローカルで表示したり (おそらくエフェクトを適用したり)、ネットワーク経由でストリームを送信したりできます。データをサーバーに送信することも、使用することもできます...PeerConnection
、ブラウザーが直接ピアツーピアソケット接続を確立できるようにする API。他の人のブラウザに直接接続して、データを直接交換できます。これは、ビデオのような高帯域幅のデータで、サーバーが大量のデータの中継を処理する必要がない場合に非常に役立ちます。
デモを見て、WebRTC の両方の部分の動作を確認してください。
つまり、一言で言えば:
- WebSocket は、ブラウザーと Web サーバー間の全二重通信を可能にします。
- WebRTC
PeerConnection
は、2 つのブラウザ間の全二重通信を可能にします。
WebRTCはメディアトランスポートにRTP(UDPベースのプロトコル)を使用しますが、通信をセットアップするために帯域外シグナリングチャネルが必要です。シグナリングチャネルの1つのオプションはWebSocketです。
代わりに、基本的に双方向 udp であるhttps://datatracker.ietf.org/doc/html/draft-jesup-rtcweb-data-protocol-00peerConnection
の WebRTC データ チャネル ドラフトを参照することもできます。これは、tcp 接続の「負の」側面がないため、WebSocket の非常に価値のある代替手段となる可能性があります。
いいえ、シグナリングは WebRTC によって定義されていません。
以下は、IETF による投稿で、そうでない理由をよく説明しています: http://www.ietf.org/mail-archive/web/rtcweb/current/msg01143.html
これは、ネットワーク情報の交換方法を自由に選択できることを意味します。つまり、WebSocket、HTTP、さらには電子メールを使用することもできますが、それは少し苦労するでしょう:)