3

バイナリ データをブラウザに (http 経由で) ストリーミングすることを検討しています。これを行うための良い方法について意見を求めています。最終的にはリアルタイムのデータ ソースを取得し、このデータを操作して (リアルタイムで) ブラウザーに表示したいと考えています。Firefox が最初に来ます。私は必要なことを行うFirefoxプラグインを持っていますが、ユーザーがプラグインをインストールしなくても機能するjavascript/htmlで書かれたものを好むでしょう。

私は multipart/x-mixed-replace MIME/media タイプを見てきましたが、このプロジェクトで役立つように見えますが、お金を使う前に、これを行うためのより良い方法 (もしあれば) について意見を聞きたかったのです。この道を何時間も進みます。

Flash はおそらく仕事を成し遂げるでしょうが、プラグインは避けたいと思います。理想的には、javascript/html のみを使用して、可能な限り最も単純なソリューションを提供したいと考えています (そうではありませんか?)。

また、Comet を調べて、何ができるかを調べています。

4

5 に答える 5

4

これの多くは、データで何をしたいかによって異なります。レンダリングすると思います。

Flashはおそらく最も簡単な解決策でしょう。これは十分に一般的なアドオンであり、ほぼすべての人が今までにそれを持っているはずです。したがって、非互換性のリスクはあまりありません。

JavaScriptは、バイナリデータを処理するための優れたプラットフォームとは見なされていません。そのため、この分野ではあまり開発が行われていません。私はあなたがあなたが望むもののために多くの助けを見つけるつもりはないと思います。特に、レンダリングのポイントを取得する場合は、JavaScriptで使用できる唯一の動的イメージングであるため、すべてのバイナリファイルをキャンバススクリプトに変換できない場合を除きます。

いくつかのファイルタイプでこれを実現するためにいくつかのActiveXオブジェクトを使用できる可能性があるため、IEは実際には例外である可能性があります。しかし、その後、他のほとんどのブラウザを切り取ります。

于 2008-12-04T20:55:26.290 に答える
2

私は以前、ビデオ(つまり、モーションjpeg)データでこれとまったく同じことをしなければなりませんでした。

「バイナリデータ」とおっしゃっていましたが…これは画像データですか?それは何ですか?

multipart / x-mixed-replaceは、最近の多くのブラウザで正常に機能します。IEの新しいバージョンでもサポートされる可能性があると思います。これを実装しなければならなかった約5年前のFirefoxのすべてのバージョンで確かに機能します。Chromeやsafariなど、Webkitベースのブラウザもおそらくサポートされています。

ただし、私の意見では、これは実際にはLANベースのアプリケーションにのみ適しています。その理由は、大量のデータを送信しているためです。連続するフレーム間の差を送信するのではなく(ビデオの場合)、毎回画像全体を送信します。ユーザーの数によっては、これによってサーバーの帯域幅に大きな負担がかかる可能性もあります。

したがって、multipart / x-mixed-replaceの実装ははるかに簡単ですが、必ずしも最も適切なソリューションであるとは限りません。繰り返しますが、生のデータ型によって異なります。

ビデオの場合、理論的にはjavascriptで何かを書いてそれを行うことができます。実際、javascriptビデオプレーヤーをグーグルで検索すると、いくつか見つけることができます。それらがひどく高速であり、おそらくクライアントマシンに大きな負担をかけることになるとは思えません。それでも、それは実行可能のようです。

したがって、オプションは次のとおりです。1)コンテンツタイプの混合置換2)プラグインのダウンロードネイティブブラウザプラグイン(最速で最も効率的)FlashまたはSilverlightベース3)Javascriptベースのプレーヤー

必要なビデオの場合最先端にある最後のオプションは、4)HTML5ベースのビデオです。 http://www.html5video.org/ 標準はまだ承認されており、ブラウザのサポートは制限されているため、現時点ではお勧めしません。

于 2011-02-14T10:26:12.633 に答える
2

データ ストリーミングとソケット スタイルの接続については、APE (Ajax Push Engine) プロジェクトを参照してください。これにより、真のソケット接続のために JavaScript が接続できる HTTP プロキシを設定できます。

到着したデータをどう処理するかについては、未加工の PNG データを処理し、解析してブラウザーにレンダリングする方法を示す概念実証を行いました。見てみな。

于 2009-05-21T02:53:13.680 に答える
1

Base64 を使用してバイナリをテキストに変換し、それをブラウザに送信できます。IEなら直接バイナリに変換できますが、Firefoxなどではできるかどうかわかりません。Base64 の enflate/deflate 用の jscript と、おそらく変換も行う base64.js という名前のスクリプトを見ました。

ただし、バイナリ データを JSON に変換し、AJAX を使用してデータを転送し、ブラウザで JavaScript オブジェクトとして処理する方がよいでしょう。Web サーバーは、データを取得して JSON に変換する役割を担うため、使用しているプログラミング言語に関係なく、バイナリを処理できるはずです。

于 2008-12-04T21:28:37.890 に答える
1

multipart/x-mixed-replace はブラウザーのサポートがかなり不完全なので、通常は使用を避けます。カメラの multipart/x-mixed-replace が IE または新しいバージョンの Firefox で動作しないことはわかっています (ただし、それを変更するための構成が存在するようです)。

小さな Flash アプリが最良の選択肢の 1 つになると思います。

于 2008-12-04T22:10:22.067 に答える