2012-09-07 13 views
41

私は私がより良い何を求めているシナリオを理解することができるようにのWebRTCとWebSocketをの違いを理解しようとしていますのためのWebRTCとWebSocketをとの違いは何ですか。私は、2人のパーティー(主にWebベースだが、潜在的に1つは専用のサーバーアプリケーションである)がお互いに話しているという幅広い考え方に興味がある。低レベルのデータ通信

仮定:それはネイティブICEプロトコル/メソッドをサポートしてアドホックネットワークに関しては明らかに

  • 、のWebRTCが勝利します。

質問:

  • ブラウザ内二つの既知の当事者間の直接通信については、私はマルチメディアデータを送信するに頼らない、と私は、整数データを送信中にのみ興味があれば、私のいずれかを与えるのWebRTCありませんデータ暗号化以外のWebSocketsよりも利点?
  • ブラウザベースのクライアントに話す専用サーバーに関して、どのプラットフォームが私に有利なのですか?私はWebRTCサーバーをコード化する必要があります(これはブラウザからの可能性がありますか?)、またはWebSocketサーバーをコードする必要があります。
+1

ブラウザ - > WebSocketを介したブラウザ通信ができません。 WebSockesやWebRTCがBrowser - > Server通信の方が良いかどうかは依然として問題です。 – lvicks

+2

WebRTC datacannel apiは、私たちの素晴らしい機能を可能にします - しかし率直に言って、あなたの質問の観点から:WebSocketsはデータを転送するための最良の選択です--- WebRTCはこの場合WebSocketと競合することはできません!! ---- WebRTCは、データストリームではなくメディアストリームを共有するように設計されています---データストリームは拡張子または部分です---全体の件名ではありません! ---(これは私の個人的な視点なので、私が間違っていると謝ります!) –

答えて

19

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

+0

。 。 。したがって、Udemyスタイルのビデオ配信では、WebRTCやWebSocketは必要ありません。ごめんなさい。あなたが説明できるなら、それは素晴らしいことでしょう。 – dotslash

+0

私はUdemyが何かを知りません、申し訳ありません。私はゲーマーではない.. – oberstet

+0

ねえ、いや、ゲームじゃない。インストラクターがビデオをアップロードして、有料のユーザーにストリーミングされるビデオコースを販売するウェブサイトです。興味深いのは、各ビデオの進捗状況を保存し、必要に応じてその部分にジャンプできることです。それは、ビデオタイムラインの様々なポイントでブックマークを許可します。私はこのようなものを作るためにはどんな種類の積み重ねが必要かと思っていました。 – dotslash

9

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

質問2私は、以前の応答で言ったように、あなたは、サーバーとクライアントの通信をしたい場合はWebSocketをは優れている、とこれを行うには多くの実装(すなわちjWebSocket)があります。サーバーにWebRTCデータチャネルとの接続を確立するためのサポートを追加するには、数日間の人生と健康が必要になることがあります。 :)

36

1つの重要な違いがあります:WebSocketをはのWebRTCはUDP経由で動作する、TCP経由で動作します。 実際、WebRTCは、STUN、ICE、DTLSなどの追加機能と、適応型ジッタバッファ、AEC、AGCなどの内部VoIP機能を備えたSRTPプロトコルです。

したがって、Websocketは信頼性の高い通信用に設計されています。信頼性の高い送信が必要なデータを送信したい場合は、適切な選択です。

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

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

+0

メディアではなくデータを送信する必要がある場合、WebRTCデータチャネルはUDP(https://w3c.github.io/webrtc-pc/#rtcdatachannel、第4段落)を使用しても、デフォルトで信頼性があります。独自のエラー訂正アルゴリズムを使用する必要はありません。 – jamix

関連する問題