問題タブ [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.

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

google-chrome - Chrome または Safari でリソース追跡を一時停止するにはどうすればよいですか?

Safari と Chrome のリソース追跡ツールは、さまざまなページ コンポーネントの読み込み時間を視覚化するのに最適ですが、キープアライブ ping が定期的に発生すると、ビューが完全にわかりにくくなります (私の場合、chartbeat は 15 秒ごとに ping を送信するため、他のすべてのコンポーネントはロード時間は役に立たない小さなセクションに圧縮されますが、チャートビートの ping はビュー全体に引き伸ばされます)。

したがって、リソースの追跡を停止し、現在のビューを保持する「一時停止」ボタンがあれば素晴らしいでしょう。これは可能ですか?

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

c# - WebClientはKeepAliveを使用しますか?

1つのホストに約50のHTTPリクエストを発行する必要があります(API呼び出し)。パフォーマンスが重要なので、HTTPキープアライブを使用したいと思います。WebClientはこれをサポートしていますか?

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

ruby - Keep Aliveを使用せずに縁石を強制することは可能ですか?

curbを使用して一部のHTTPサーバーと通信し、そのHTTPサーバーがKeep-Aliveを適切に実装していないように見えます。

これが、この機能を使用しないように縁石を強制する方法を探している理由です。

確かに、次のリクエストをする前に1分ほど眠ることができますが、別の方法でこれを行いたいと思います。

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

c - Windows TCPソケットはデフォルトでSO_KEEPALIVEが有効になっていますか?

TCP ソケットで奇妙なバグに遭遇しました。SO_KEEPALIVEデフォルトですべてのソケットで有効になっているようです。

ソケットを作成してサーバーに接続するための短いテスト ケースを作成しました。接続直後、 でSO_KEEPALIVE確認getsockopt。値はゼロ以外で、MSDN によると、キープアライブが有効になっていることを意味します。多分私はこれを誤解しています。

最近、サーバーが 2 回連続で切断されるという奇妙なバグが発生しました。一部のクライアントは、ログオン情報を送信して応答を待っている状態でした。サーバーに接続されたソケットにオーバーラップが投稿されたにもかかわらずWSARecv、サーバーがクラッシュしたことをクライアントに通知するための完了が投稿されなかったため、ソケットが完全に閉じられていないと想定しています。

約 2 時間後 (実際には約 1 時間 59 分 19 秒) に、読み取りの完了パケットが送信され、接続が開かれていないことがクライアントに通知されました。これが私が疑い始めたところSO_KEEPALIVEです。

なぜこれが起こったのか理解しようとしています。何らかの理由で接続を失ったクライアントは自動的にサーバーに再接続するはずなので、少し問題が発生しました。この場合、切断が通知されなかったため、クライアントは 2 時間後まで再接続しませんでした。

明らかな解決策はタイムアウトを設定することですが、この状況がどのように発生するかを知りたいです。

SO_KEEPALIVEアプリケーションサーバーまたはクライアントによってソケットに設定されていません。

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

c++ - C++ recv winsocket2 による HTTP キープアライブ

私は自分の HTTP fetcher ソケットをコーディングしています。私は MVC++ と winsocket2.h で C++ を使用しています。ソケットをプログラムして、必要な Web サイトのサーバーに接続し、HTTP GET 要求を送信することができました。

問題は、キープアライブ接続で HTTP GET 要求を送信した後、recv 関数を呼び出すことです。Web サイトを取得した後を除いて、問題なく動作し、サーバーまたは接続からのタイムアウトのヒントを待ち続けます。閉じる!!

これは、サーバーのキープアライブ タイムアウトに応じて数秒かかるため、キープアライブ HTTP 設定の恩恵を受けられません。

Web サイトを取得した後に recv 関数を停止するように指示し、コマンドを返して、別のハンドシェイク体制を回避しながら別の HTTP 要求を送信できるようにするにはどうすればよいでしょうか。

ノンブロッキング ソケットを使用すると、より高速に動作しますが、停止するタイミングがわかりません。str.rfind("",-1,7) を設定して、データの取得を停止します。ただし、あまり効率的ではありません。

誰かがそれを行う方法を知っていますか、または接続が維持されているときにHTTPサーバーによって送信される最後の文字は何ですか?それで、停止の決定として使用できます.

ベスト、
萌え

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

jsp - jsp を呼び出してハートビートを送信しても、セッションが維持されない

長時間触れていなくても、ブラウザでWebページを開いたときにセッションを維持したいのですが、これが私がやろうとしている方法です:

  1. サーバー側 (Tomcat) では、セッション タイムアウトが 8 分に設定されています。
  2. main jsp は html を生成します。このhtmlでは、タイマーとajaxを使用しheartbeat.jspて3分ごとに呼び出し、初期セッションIDの値も渡します。
  3. では、の値と初期セッション ID heartbeat.jspをダンプします。session.getId()

【実行結果のタイムライン】:

  • 10:00ページを開く -- メインの jsp プログラムがクライアント html を生成する
  • 10:03 heartbeat.jsp呼び出された -- session.getId()= 初期セッション ID
  • 10:06 heartbeat.jsp呼び出された -- session.getId()= 初期セッション ID
  • 10:09 heartbeat.jsp呼び出された -- session.getId()<> 初期セッション ID

初期セッション IDの最終アクセス時刻は で10:06あるため、初期セッション ID のタイムアウト時間は であると想定され10:14ます。しかし、なぜ で10:09session.getId()別の新しい ID を取得するのでしょうか。

最初の 2 つの呼び出しは、サーバー側で初期セッションのタイムアウト カウンターをリセットしなかったようです。これをIEとFirefoxの両方でテストしましたが、同じ結果が得られました

セッションを永続的に維持するにはどうすればよいですか?

[メインの jsp コード セグメント]:

[heartbeat.jsp コードセグメント]:

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

php - http:keep-alive は php リソースを開いたままにしますか、それともすべてのリソースを解放しますか?

私はApacheサーバーでhttpキープアライブを使用しています。
接続を最大2分間開いたままにするように依頼するとしましょう...接続が作成されて1分間アイドル状態になると、 mysqlなどの
phpが保持するリソースは
接続、ファイルハンドルなどは解放されますか、それとも存続しますか?

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

c# - .Net Sockets Keep Alive が確認を受信しない場合に発生するイベントはどれですか?

を使用してC#.Netソケットを構成しました

私の設定では、30 秒ごとに送信し、最初の確認応答が受信されない場合は 10 秒ごとに送信します。

接続が確立されたときに、キープアライブとキープアライブ ack フラグがサーバーに送受信されるのを確認できます。

接続が切断されると、キープアライブが送信され、確認応答が受信されないことがわかります。送信されているキープ アライブの動作が、設定に合わせて変更されていることがわかります。つまり、30 秒ごとではなく、10 秒ごとに送信されています。

ブレークに応答できるように、何らかのイベントが発生することを期待していました (つまり、ソケットをシャットダウンしてから、ソケットのリサイクルを開始します)。

キープアライブが接続が切断されていることに気付いたという事実を理解する方法を誰か教えてもらえますか?

ありがとうアディ

0 投票する
5 に答える
9997 参照

scheduling - ログオフした後、UnixでPerlスクリプトを実行し続けるにはどうすればよいですか?

完了するのに時間がかかるスクリプトがあります。

終了するのを待つのではなく、ログアウトして後で出力を取得したいと思います。

私はもう試した;

at -m -t 03030205 -f /path/to/./thescript.pl

nohup /path/to/./thescript.pl &

また、使用したスケジューリング構文に応じpsて、プロセスが実際に存在することも確認しました。at -l

これらのプロセスは両方とも、シェルを終了すると終了します。接続を閉じたときにスクリプトが終了しないようにする方法はありますか?

atここにcronがあり、それらはセットアップされて正しく機能していますが、またはnohup使い捨てスクリプトを使用したいと思います。

私の構文に何か問題がありますか?望ましい結果を生み出す他の方法はありますか?


編集:
使用できない、screenまたはdisown-HP Unixセットアップにインストールされておらず、インストールする立場にもありません

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

java - TCP キープアライブをオフにする方法は?

サーバーとして機能するJavaアプリケーションと、クライアントとして機能するAndroidフォンがあります。それらは TCP ソケットを介して通信しています。

クライアントをスリープ状態にすることがよくあり、そのバッファーがいっぱいになったら、wifi ラジオをスリープ状態にできるようにします。問題は、クライアントが眠っていないことです。Wireshark が、サーバーが約 0.5 秒ごとに TCP キープアライブ パケットを送信しているため、wifi がスリープ状態にならないことに気付きました。サーバーとクライアントで次のことを試しました。

しかし、これは何も変わらないようです。Wireshark を使用してトラフィックを分析しています。これはwiresharkのスクリーンショットです...黒い線は、クライアントがスリープ状態にあり、受信バッファがいっぱいであることを示しています。サーバーが keepAlive パケットを送信するのを止めることはできますか?

ありがとう!