0

Google Chrome パッケージ アプリ内から単純な Web ページ サーバーを取得しようとしています。アプリ内で実行されている UDP サーバーが既にあり、問題なく動作しています。

私はsocket.listenを開始し、0.0.0.0:8080ほとんどのコードをコピーしています

https://github.com/GoogleChrome/chrome-app-samples/tree/master/webserver

. サンプルアプリでも同じ問題が再現されています。

私がやっていることは、リクエストを受け入れ、リクエストに何らかのデータがあるすべてのリクエストに単一の HTML ファイルを送信することです ( request.data.length > 0)。アプリのフローは、ほぼ同等の機能を持つサンプル アプリに似ています。

これをテストするために、私はSocket Test 3.0(SourceForgeから)使用しています。ソケットを作成し、コンテンツとして127.0.0.1:8080送信しGET / HTTP/1.1ます。意図したとおり、Chrome アプリは html ファイルと正しいヘッダーで応答します。アプリを再起動せずに、これを複数回繰り返すことができます。この問題は、アプリが Chrome 経由でリクエストを送信されたときに発生します。一見すると意図したとおりに動作しますが、更新時にタイムアウトします。これは、サンプル アプリでも複製されます。

デバッグ時に、すべてが処理されていることがわかりました。書き込みソケットが破棄され、socket.accept(serverSocket, ...)発行されています。また、のコールバック関数内で行われることも確認しましたsocket.write。意図した最初のリクエストは、リクエストされたページ ( GET / HTTP/1.1for localhost:8080) に対するものです。2 番目は favicon.ico asGET /favicon.ico HTTP/1.1でした。次に、データに何もない 3 番目の接続 (無視され、ソケットが破棄されます)。すべてのリクエストが返された SocketTest とは異なります。

YouTubeでエラーを再現しながらスクリーンキャストを示すビデオを作成しました。また、私が取り組んでいるプロジェクトのリポジトリはGitHubにあります。

4

1 に答える 1