問題タブ [nanohttpd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1156 参照

java - nanoHTTPD - Android で単一のバックグラウンド スレッドとして実行する方法は?

私のアプリケーションは、自動化と回帰テストのために Android UI でボタンを押してテキストを入力する代わりに nanoHTTPD を使用することです。現在、メインの UI スレッドとカスタマイズされた nanoHTTPD を別のスレッドで実行しています。各 HTTP リクエストが UI スレッドで非常に迅速に処理されることを考慮してください。着信リクエストごとにnanoHTTPDが新しいスレッドを開始しないように強制できれば、モデルを簡素化できると思います。私のユースケースでは、ブロッキング I/O モデルはまったく気にしません。スレッド化にはプラグイン可能な戦略があることがわかりました。一度に 1 つの Web リクエストのみがアクティブになるように以下を変更できますか (ブロッキング モデル)。

おそらくもっと精巧なメッセージ キューを作成することもできますが、1 つのスレッドで nanoHTTPD を "ダビングダウン" するのが最も簡単に思えます。

0 投票する
1 に答える
454 参照

java - java android nanohttpd - 一時ストレージからアップロードしたファイルを内部ストレージにコピーする正しい方法

関連する質問がここで尋ねられました nanohttpdの一時ディレクトリからSDカードにアップロードされたファイルを移動します

参照質問者は、nanohttpd でアップロードしたファイルを外部 SD カードにコピーするよう求めています。ただし、アップロードされたファイルのコピーを内部ストレージ内に保持したい場合は、どうすればよいでしょうか?(たとえば、デバイス設定が SD カードまたは内部ストレージであるかに応じてシステムが割り当てられます)。

質問の作成者は、nanohttpd サーバーからアップロードされたファイルのコピーを作成するためのクラス メソッドを見つけました (特定のディレクトリとの間でコピーする単純なクラス メソッドを使用) https://stackoverflow.com/a/4770586/1673000

しかし、コードをどこにどのように実装すればよいのでしょうか? (適切なアプローチを念頭に置いて)

  • このコードを nanohttpd ソース ファイルに実装する必要がありますか? (NanoHttpd.java など) その場合、コードをメイン クラス ファイルにどのように実装しますか。
  • nanohttpd.java ソース ファイルを変更せずにそのままにして、おそらく別のクラス ファイルにこの特定の機能を追加することはできますか? (たとえば、いくつかのサンプル HTML コードを解析して「NanoHTTPD を拡張する」別のクラス ファイル) またはクリーンな設計構造を持つという点で推奨される手順は何ですか?

補足: nanohttpd 操作が完了した直後にファイルをコピーできることを望んでいましたが、nanohttpd がオフになった直後に一時ファイルが常に削除されます。

読んでくれてありがとう

0 投票する
0 に答える
1091 参照

android - WebView 内で JwPlayer を使用した MP4 再生

JwPlayerを使用してビデオを再生するビデオ要素を持つページを提供するアプリケーション内で(nanohttpdを使用して)httpサーバーを使用しています。ビデオの種類は .mp4 です。

問題は、カスタム ROM を使用した Samsung Galaxy S3 Mini でビデオを正しく再生できないことです。オーディオは問題ありませんが、ビデオ エリア内では、Web ビュー (グリッチ) の一部を表示する右下隅を除いて、すべてが黒くなっています。ハードウェア アクセラレーションを有効にしようとしましたが、まだ機能していません。

ビデオは android chrome ブラウザー (アプリのサーバーからアクセス可能) で正しく再生されるため、WebView または chromium の構成にエラーがある可能性がありますか? 他の一部のデバイス (Samsung galaxy S3) でも正しく再生されます。

これは、WebView をセットアップするために使用するコードです。

このエラーは、再生の開始時にデバイスによってログに記録されます。

前もって感謝します。

0 投票する
2 に答える
1517 参照

java - NanoHTTPD を使用してログ ファイルを表示する方法

組み込みの NanoHTTPD Web サーバーhttps://github.com/NanoHttpd/nanohttpdを使用して http 要求を受け入れる Java デスクトップ アプリケーションを作成しました。http 要求を受け取った後、デスクトップ アプリケーションは何らかのアクティビティを行い、ジョブの実行中にログ テキスト ファイルに書き込みを続けます。現在、Web ページを開くクライアントは、ジョブ全体が終了し、ページ全体が送信され、ログ ファイルが表示されるまで待機する必要があります。ログ データがローカル ログ ファイルに追加されたらすぐにクライアントに送信されるようにしたいと考えています。これはajaxを使用して行われることは知っていますが、まだ学ぶ時間がありません.Javaでオブジェクトを更新する方法は、ページ全体を送信する必要なくWebページに直接反映されます.

このコードhttp://www.binpress.com/app/jquery-log-viewer/570を見つけましたが、うまくいきませんでした

0 投票する
1 に答える
1205 参照

android - WebView と NanoHTTPD の使用中に大きなビデオをストリーミングすると、接続リセット例外が発生する

私のアプリケーションでは、Web コンテンツを圧縮しています。Web コンテンツには動画が埋め込まれています。

Android の Web ビューでコンテンツを表示します。NanoHTTPD サーバーを介してコンテンツを提供しています。私はAndroid 4.2.2とNanoHTTPDの最新バージョンを使用しています

私のサーバーは、範囲リクエストによる部分的なコンテンツ処理をサポートしています。このエラーは、最初の呼び出し自体、つまりサーバーから accept-range 応答が送信されたときに発生します。

サーバーからの応答として、ZipInputInflaterStream としてのビデオが送信されます。

大きなサイズのビデオを表示しようとするたびに、このスタック トレースが表示されます。

NanoHTTPD のクライアント ソケットが切断されているようです。以下は、このエラーをスローする NanoHTTPD のコードです。

outputStream.write は上記のスタック トレースをスローします。

このような大きなファイルの場合、例外が発生した後、Android メディア プレーヤーは範囲リクエストを送信します。これは、ファイルを抽出し、FileInputStream を介してコンテンツを送信するときに機能します。

質問は、NanoHTTPD が ZipInputInflaterStream をより長い時間読み取れるかどうかです。

この問題は、19 MB などの大きなビデオでのみ発生することに注意してください。11 MB などの小さなファイルの場合は機能します。

乾杯、サウラフ

0 投票する
1 に答える
2583 参照

android - Android の VideoView を使用してローカル ストレージからメディアをストリーミングおよびダウンロードする方法は?

サーバーからビデオファイルをストリーミングしてダウンロードし、VideoViewで表示する必要があります.Googleのおかげで、VVは私の要件を自然にサポートしていないため、これが私が行ったことです:

1-NanoHTTPD を使用して HTTP プロキシを作成し、サーバーからファイルのダウンロードを開始します

2-VideoView を起動し、URI を HTTP プロキシに設定します

3-inside server() プロキシで、適切な応答ヘッダーを持つ実サーバーと同じように VideoView に応答し始めました (206 応答の content-length/content-range を意味します)。

しかし、問題は VideoView のときに始まり、300kb のビデオ ファイルを適切に読み取り、その後 619kb などから要求します。VV が 300,000bytes からホップして突然 619,000bytes にジャンプしたい理由がわかりません。10 回試行した後、VideoView の c++ コード内でエラー -1004 が返されます。それ。

以下は私の完全な解決策です。私は VideoView について無知になり、それは奇妙な動作であるため、助けていただければ幸いです!!!

注:ファイルのサイズは意図的に修正しましたが、問題はありません。

0 投票する
3 に答える
2145 参照

android - Android Web サーバー nanohttpd - 同じデバイスのブラウザーから接続できない

nanohttpd デモ アプリケーションを変更せずに使用して、Android で簡単な Web サーバーをセットアップしようとしました。私が使用している Android デバイスは、Android 4.0.3 を実行しています。

他のデバイスから Web サーバーにアクセスできますが、Web サーバーが実行されている同じ Android デバイス上のブラウザー (Firefox、Chrome、およびネイティブ Android ブラウザー) から Web サーバーに接続できません。

さまざまなアドレスとポートの組み合わせを試しましたが成功しませんでした (localhost、127.0.0.1、10.0.0.2、実際に割り当てられた IP アドレス、ポート 8080、8082)。また、nanohttpd アプリケーションを 127.0.0.1 に直接バインドしようとしましたが、どちらも成功しませんでした。Android デバイスのターミナル アプリケーションを使用してアドレスに「ping」できることを確認したので、ネットワーク接続は問題ないようです。

ブラウザがローカル Web サーバー インスタンスに接続できないようにする Android の制限はありますか? もしそうなら、これを機能させるために変更する必要がある構成設定またはアクセス許可はありますか?

0 投票する
1 に答える
55 参照

java - 未使用の Firefox 接続を減らす

NanoHTTPD (1.25) を拡張して組み込み Web サーバーを構築しました。Firefox ブラウザが同じマシン内でそのコンテンツを表示するために使用されます。(SuSE11)

Firefox は非常に短い時間 (0.2 秒の更新) で変化するコンテンツを表示する必要があるため、JSON URL を非常に迅速にポーリングし続けます。

その結果、多くの未使用の接続が作成され、Web サーバーからの応答が得られないことがあります。

TIME_WAIT 接続が非常に多いのはなぜですか? Web サーバーを健全な状態にして、Web サーバーからの応答を確保するにはどうすればよいですか?