47

どのシナリオが何を必要としているかをよりよく理解できるように、WebRTC と WebSockets の違いを理解しようとしています。私は、2 つの当事者 (主に Web ベースですが、一方は専用サーバー アプリケーションである可能性があります) が互いに話し合うという幅広い考えに興味があります。

予測:

  • 明らかにアドホック ネットワークに関しては、ICE プロトコル/メソッドをネイティブにサポートする WebRTC が勝っています。

質問:

  • ブラウザー内の 2 つの既知のパーティ間の直接通信に関して、マルチメディア データの送信に依存せず、整数データの送信のみに関心がある場合、WebRTC はデータ暗号化以外に webSockets よりも利点がありますか?
  • ブラウザベースのクライアントと通信する専用サーバーに関して、どのプラットフォームが有利ですか? WebRTCサーバーをコーディングする必要があります(これはブラウザから可能ですか?)、またはWebSocketサーバーをコーディングする必要があります(Googleですばやく検索すると、これは可能だと思います)。
4

3 に答える 3

45

大きな違いが 1 つあります。WebSocket は TCP 経由で機能し、WebRTC は UDP 経由で機能します。実際、WebRTC は SRTP プロトコルであり、STUN、ICE、DTLS などの追加機能と、Adaptive Jitter Buffer、AEC、AGC などの内部 VoIP 機能を備えています。

そのため、WebSockets は信頼できる通信のために設計されています。確実に送信する必要があるデータを送信する場合に適しています。

WebRTC を使用する場合、送信されるストリームは信頼できません。一部のパケットは、ネットワークで失われる可能性があります。財務処理などの重要なデータを送信するのは良くありません。オーディオまたはビデオ ストリームを送信する場合、同じ問題が理想的に適しています。この場合、一部のフレームが失われる可能性があり、品質に問題はありません。

WebRTC 経由でデータ チャネルを送信する場合は、ネットワークでデータ フレームが失われた場合にデータを復元するための前方誤り訂正アルゴリズムが必要です。

于 2013-09-27T10:22:52.840 に答える
21

WebRTC は、特定の状況下で P2P を機能させることができる RTP を介したメディア トランスポートを指定します。いずれにせよ、webRTC セッションを確立するには、シグナリング プロトコルも必要になります。そのためには、WebSocket が選択される可能性があります。つまり、リアルタイム メディアをストリーミングしたくない場合は、おそらく WebSocket の方が適しています。

于 2012-09-09T17:44:49.427 に答える
10

質問1: はい。この場合、WebRTCのDataChannel部分には、ブラウザー間にピアツーピアチャネルを作成して、必要な生データを送受信できるという利点があります。Websocketを使用すると、サーバーを使用して両方のパーティを接続する必要があります。

質問2 前の応答で述べたように、サーバーとクライアントの通信が必要な場合はWebsocketの方が優れており、これを行うための多くの実装があります(つまり、jWebSocket)。サーバーにサポートを追加してWebRTCDataChannelとの接続を確立するには、数日間の生活と健康が必要になる場合があります。:)

于 2013-01-08T00:34:05.650 に答える