2017-09-26 6 views
-1

はどのように私はのWebRTCを削除し、私のAndroidアプリにZeroMQを追加するには、AndroidアプリでzeroMQを追加しますか?のWebRTCを削除し、

私はのWebRTCを追加するためにやった手順を逆にして、ZeroMQ機能を追加すべきか? または別の方法がありますか?

+0

これは抽象的なで答えることは不可能です。 ZeroMQはWebRTCと同じことをしません。 – CommonsWare

答えて

0

Hmmm、よくWebRTCは、RTPの上に構築されたプロトコルであり、タイムクリティカルなデータ(ビデオフレーム、オーディオなど)の非保証型配信を目的としており、配信の順序も保証されていません。これとは対照的に

は、ZMQは便利なデザインパターンとメッセージ指向の俳優モデルのフレームワーク、保証された配信(ネットワークがアップ状態のままと仮定した場合)で、周りのメッセージを出荷する必要があるアプリケーションのための非常に良いです。

これらはかなり異なっています。私はWebRTCを使い始めたことを前提にしています(おそらく親密さのため)、RTPが使用しているUDPに基づいたプロトコルに固有の制限にぶつかっていますか?

あなたがZMQを使用している場合は、あなたがそれを使用したい上のすべての通信路の両端にそれを使用する必要がありました。たとえば、AndroidアプリでZMQをWebRTCサーバーと対話させることはできません。 ZMQはZMQと言いますが、他には何もありません。

良いことはのWebRTC(RTP)が似ているということです。したがって、すでにWebRTCを使用している場合は、すべてのソフトウェアを制御する可能性があります。つまり、ZMQを使用するように変更することができます。 [例えば、 WebRTCリンクのもう一方の端は変更できないサーバーシステムだったので、あなたのAndroid AppをZMQに変更することはできませんでした。]

WebRTCをZMQに置き換えるには、あなたは送ろうとしています。基本的にZMQはメッセージを扱います。メッセージはバイトの配列です。メッセージのバイトは、1回の送受信操作で送信者から受信者にブロックとして送信されます。それが合わない場合(たとえば、論理的なビデオチャンクの間に明確な境界がないビデオストリームがある場合)、問題が発生する可能性があります。

は、多くの場合、人々は、彼らがその後、バイト配列にシリアライズメッセージクラスを定義するためにGoogleのプロトコルバッファのようなものを使用し、それはメッセージで送信され、これらのです。受信側は受信されたバイト配列をデシリアライザで渡し、そのクラスをそのまま再構成する。

幸運

関連する問題