1

XPCOMを使用して、FirefoxのJavascriptで小さなサーバー+クライアントをプログラムしようとしています。

Javascript で HTTP メッセージを取得するために、nsIScriptableInputStream インターフェイスを使用しています。read() メソッドを介したこの f**ing コンポーネントはメッセージをランダムに切り取り、信頼できるものにすることはできません。

情報を確実に取得するための解決策を知っている人はいますか? (私はすでにバイナリストリームを試しましたが、同じ失敗です。)

J.

4

2 に答える 2

1

私は信頼性が低いという同じ問題を抱えていました... 最終的に XMLHTTPRequest を使用することになりました。これは、XPCOM コンポーネントから使用するとクロスサイト要求を行うことができます。ドキュメントの 2 番目の部分では、XPCOM バージョンをインスタンス化する方法について詳しく説明しています。

HTTP リクエストの処理を検討している場合は、POWソース コードと、JavaScript で基本的な HTTP サーバーを実装するサーバー ソケットの使用を参照してください。httpd.jsもチェックしてください

于 2008-09-16T19:08:17.577 に答える
0

プロトコル (つまり、クライアントとサーバーの両方) を制御する場合は、サーバーからクライアントへのメッセージに Javascript/JSON を使用することを強くお勧めします。クライアントは、動的に <script> タグを DOM に追加することにより、ストリームを開くことができます。その後、サーバーは次のような Javascript コマンドのストリームを送信できます。

receiveMsg({type:"text", content:"this is my message"});

次に、クライアントは receiveMsg 関数を定義するだけです。これにより、高速なブラウザー コードを使用してメッセージを解析し、各メッセージの末尾を判断し、その時点でハンドラーを呼び出すことができます。

既存の HTTP プロトコルを使用していて JSON を使用できない場合でも、XMLHttpRequest を使用できない理由はありますか? ドキュメント化が不十分な Firefox 固有の XPCOM インターフェイスよりも安定していると思います。

--Chouser

于 2008-09-16T16:00:47.013 に答える