0

geckoベースのWebブラウザと通信できる必要があるバックエンドソフトウェアがあります(その逆も同様です)。これを実現するための最良の方法は何ですか?HTTPはどちらかと言えば一方向なので(たとえば、私がかなり「ハッキー」だと思うリバースAJAXを除いて)、これをどのように行うのか疑問に思っています。

NPAPIベースのプラグインを作成することはオプションでしょうか?ブラウザとバックエンドの間で交換されるデータに基づいて、ブラウザはWebページのDOMを操作する必要があります。操作は非常に動的である必要があり、通信速度は重要な要件です。

私を正しい方向に向けたり、読む価値のある有用なリソースを提供したりするのに助けてくれてうれしいです!

4

1 に答える 1

1

WebSocket(またはweb-socket-jsのようなエミュレーション、詳細についてはここここを参照)のような代替手段を使用できる場合、ブラウザープラグインの作成はそれほど簡単ではありません。

特別な要件のためにそのような代替手段が十分な制御を提供しない場合にのみ、ブラウザプラグインの作成を検討する必要があります。
これを使用すると、ネイティブコードのすべての利点(選択したAPIを高度に制御)だけでなく、それに伴う問題も発生します。

  • あなたは特権について心配し始めなければなりません
  • バグはブラウザ全体をクラッシュさせる可能性があります
  • プラットフォームとブラウザ間の動作の違いを処理する必要がある場合があります
  • 複数のプラットフォームでの配布について心配する必要があります
  • ..。

何らかの理由でより高いレベルの制御が必要な場合は、

  • プラグインで選択した接続処理を実装します
  • JavaScriptに接続を開始させ、データを送信させます
  • JavaScriptに受信データなどのハンドラーを登録させます。
  • 着信データでそれらのハンドラーを呼び出し、データを渡します

NPAPIプラグインの使用を開始するには、ここを参照してください。IEもサポートするには、コンテンツ拡張機能を作成する必要があります。最後に、すでに多くの面倒な作業を行っているFireBreathを確認することをお勧めします(IEとNPAPIの異なるAPIを非表示にし、より高いレベルのAPIを提供し、ブラウザーのバグの修正を含めます...)。

于 2010-11-06T23:51:22.150 に答える