問題タブ [keep-alive]
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.
web-applications - Web リクエストを維持する
レポートのダウンロードに役立つ Web アプリケーションがあります。ただし、レポートの生成には時間がかかる場合があり、Web 要求は中間プロキシ サーバーを介してタイムアウトします (タイムアウト: 90 秒)。レポートをダウンロードするワークフローは簡単です。クライアントはリクエストを Web サーバーに送信します。Web サーバーはレポートを生成し、Excel のダウンロードとしてクライアントが利用できるようにします。
Excel は POI を使用して生成され、ダウンロードは Spring の AbstractExcelView を使用して提供されます。
(もちろん、タイムアウトを増やさずに)Webリクエストを有効に保つための最良の方法は何ですか?
http - HTTP キープアライブ期間と TCP タイムアウト期間の関係
TCP/IP と HTTP タイムアウト値の関係を理解しようとしています。これら 2 つのタイムアウト値は異なりますか、それとも同じですか? ほとんどの Web サーバーでは、ユーザーが構成を通じて HTTP Keep Alive タイムアウト値を設定できます。Web サーバーはこの値をどのように使用しますか? この値は基礎となる TCP/IP ソケットに設定されているだけですか?つまり、HTTP キープ アライブ タイムアウトと TCP/IP キープ アライブ タイムアウトは同じですか? またはそれらは異なって扱われますか?
私の理解は (間違っているかもしれません): Web サーバーは、構成された HTTP Keep Alive タイムアウトに関係なく、基になる TCP ソケットで既定のタイムアウト (つまり、無期限) を使用し、指定された HTTP タイムアウト間隔をカウントダウンするワーカー スレッドを作成します。ワーカー スレッドがゼロになると、接続が閉じられます。
編集: 私の質問は、2 つのタイムアウト期間の関係または違いについてです。つまり、HTTP キープアライブ タイムアウト期間と、Web サーバーが使用するソケットのタイムアウト (SO_TIMEOUT) が異なる場合はどうなりますか? これら2つが同じかどうかについて心配する必要がありますか?
android - Android-ネイティブレイヤーのVPN
グーグルはあまり投げていないので、簡単な質問です。
Androidのネイティブコードを使用してVPN接続を作成することは可能ですか?
もしそうなら、VPNは生き続けるためのサポートを提供しますか?
iphone - NSURLConnection でキープアライブを無効にする
NSURLConnection を使用しているときにキープアライブを無効にするにはどうすればよいですか? キャンセルして閉じた後も、サーバーに接続していたソケットがどこかに保存され、サーバーが情報を取得している間、同じサーバーから別のURLにアクセスできないようです。ソケットを完全にリセットして別のソケットを開始する方法があるのだろうか。
ありがとう、
ナバ
apache - ディレクトリごとにキープアライブを無効にする方法
キープアライブをディレクトリごとに無効にすることはできますか?
たとえば、domain.com/api/ のようなもので実行される API があります。
/api/ ディレクトリ内のどのリクエストでも KeepAlive を使用しないとよいでしょう。
更新/解決策:
SetEnvIf Request_URI /api/ nokeepalive
java - マスターサーバーのJavaTCPキープアライブ
コンテキスト:ホストされているゲームのリストを監視しているマスターサーバー(Java、TCP)(マスターサーバーとホストされているゲームサーバーごとに異なるマシン)。すべてのユーザーが自分のPCでゲームをホストできます。ホストされているゲームは数週間から数か月続くことがあります。
必要性:ホストされているゲームサーバーがいつ閉じられるか、または到達できなくなるかを知る。
制限1:ホストされたサーバーの「オフライン更新メッセージがなくなった」に依存することはできません。これらのメッセージは決して到着しない可能性があるためです(電源切断、インターネットリンクの切断など)。
制限2: TCPの組み込みのキープアライブについてはよくわかりません。これは、ホストされている各サーバーで24時間年中無休でソケットが開いていることを意味するためです(間違っている場合は修正してください)
何かご意見は?
php - サーバー応答の「接続: キープアライブ」
Silverlight アプリケーションから PHP ページへの HTTP 永続接続を確立しようとしています (つまり、HTTP 要求ごとに新しい TCP 接続を作成せずに) Apache サーバーによってホストされています。
この目的のために、Web サーバーが「接続」ヘッダーを「キープアライブ」に設定して HTTP 応答を送信する必要があります。クライアント側では、Silverlight が提供するネットワーク API は基本的にブラウザ ネットワーク機能のラッパーであるため、問題はないようです。リクエストのデフォルトでは問題ありません。Content-Length も明確に定義されているため、サーバーはいつ応答を送信する必要があるかを認識できます。ただし、PHP 要求に対するサーバーの応答は、体系的に "Connection:" を "close" に設定するため、接続が終了し、永続的な接続が妨げられます。
この問題を回避するためにいくつかのことを試しました: 異なるメソッド (GET および POST)、スクリプトの先頭に次の PHP コードを使用して、応答に「接続: キープアライブ」を明示的に与えます。
後者は、期待されるヘッダーを応答に追加します。これは良いことですが、追加の「接続: 閉じる」が応答ヘッダーの後半に追加されます。
「クローズ」を強制するのはPHPまたはApacheの機能ですか(セキュリティまたはパフォーマンスの目的で、私は推測しています)、またはここに何かが欠けていますか?
前もって感謝します。
PS : パケットをスニッフィングしたところ、「キープアライブ」を使用している Web サイトは多くなく、TCP 接続が再確立されていることがわかりました。キープアライブは、HTTP 1.1 での既定の優先動作ではありませんか?
windows-server-2008 - Windows Server 2008 でキープアライブを設定する方法
TCP/IP 通信に winsock を使用する win32 アプリケーションがあります。WSAIoctl 関数でキープアライブ値を設定しており、Windows XP では正常に動作しています。
しかし、Winで。Server 2008 WSAIoctl が失敗し、WSAGetLastError が意味をなさない 10022 (無効な引数) を返します。
キープアライブを設定する私のコードは次のとおりです。
p>編集:
私は解決策を見つけました。同じ問題に直面した他の誰かを助けることができるかもしれません。非同期の直後にキープアライブを設定しようとしていました。接続呼び出しですが、接続呼び出しの完了後に設定しているため、問題は解決しました。
http://msdn.microsoft.com/en-us/library/ee470551(v=VS.85).aspxから
Windows Vista 以降では、sockopt 関数を使用して SO_KEEPALIVE ソケット オプションを設定できるのは、ソケットが移行状態ではなく既知の状態にある場合のみです。TCP の場合、SO_KEEPALIVE ソケット オプションは、接続関数 (connect、ConnectEx、WSAConnect、WSAConnectByList、または WSAConnectByName) が呼び出される前、または接続要求が実際に完了した後に設定する必要があります。接続関数が非同期で呼び出された場合、SO_KEEPALIVE ソケット オプションを設定する前に、接続の完了を待つ必要があります。接続要求がまだ処理中であるときにアプリケーションが SO_KEEPALIVE ソケット オプションを設定しようとすると、setsockopt 関数は失敗し、WSAEINVAL を返します。
.net - .NETのソケットでのキープアライブの仕様はどこで入手できますか?
.NETでkeep-aliveがどのように機能するかを調べようとしていますが、ここからのリンクは機能しません。誰かが仕様のリンクを投稿できますか?
私が探しているもの:
キープアライブパケットが送信される頻度を知りたいのですが。
コマンドを使用してKeepAliveを設定する必要がありますか?
s.SetSocketOption(SocketOptionLevel.Socket、SocketOptionName.KeepAlive、true);
サーバー側でのみ、またはクライアントでさえこのフラグを設定する必要がありますか?
javascript - 非アクティブ期間後に jquery 接続を切断する
サーバー側でTCPキープアライブを使用して接続を維持し、クライアントが停止した場合にサーバーに通知します。一定のアイドル時間後に接続を切断するようにjQuery.get()を構成するにはどうすればよいですか?
編集 - TCP パケットが交換されない時間として「アイドル時間」を考えたいと思います。サーバーには TCP キープアライブがあるため、常に 0 データ パケットをクライアントに送信します。
@JPの答えは、私が望むものと完全に一致しません。接続が開いていて、キープアライブ トラフィックがあるがデータがない場合、無期限に開いたままにしたいと思います。