2016-07-16 20 views
1

私は、さまざまなコンテナ間の負荷分散方法を示すデモ分散アプリケーションを作成しようとしています。アプリは正常に動作しますが、別のコンテナ間で強制的に更新しようとしています。Chrome/Firefoxは接続を開いたままにしています。ノードと非キープアライブ接続の方法

https://nodejs.org/api/http.html#http_request_end_data_encoding_callback

しかし、これは、サーバーがクローズする原因:私は)(.closeを閉じるために、接続を強制的に働くだろうと思いました。 Chrome/Firefoxに、サーバーを閉じずにノードのサーバーへの接続を開いたままにしないように指示する方法はありますか?

+0

これはテスト目的のためのものであれば、リクエスト間でchrome/firefoxを再起動できます。 – jfriend00

+0

申し訳ありませんが、私はデモの目的ではなく、テストを意味します。 – aronchick

答えて

1

優秀な質問です。私の知る限りでは、組み込みのHTTPサーバーでHTTPキープアライブを無効にする通常の直接的な方法はありません。 これを回避することができます。要求オブジェクトには、基底ソケットを含むconnectionプロパティがあります。応答にend()を呼び出した後で、接続への参照を保存して閉じることができます。しかしこれは本当に素晴らしい考えではありません。クライアントはパイプラインを使用して、前の応答からの応答が完了する前に複数の要求を送信できます。

行うための最善のことは、ちょうどあなたのレスポンスヘッダにこれを追加することです:

Connection: close 

これは、オープン接続を維持していないクライアントを通知します。

+0

そうだね、Nodeでこれを行う方法を知っていますか? – aronchick

+1

@aronchick 'res.setHeader( 'Connection'、 'close') ' – Brad

+0

完了 - ありがとうございます! – aronchick

関連する問題