JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

Node.jsのagent.maxFreeSocketsプロパティとは?構文と使い方を実例付きで解説

agent.maxFreeSocketsプロパティは、フリー状態(アイドル状態)にあるソケットを最大いくつ開いたまま保持するかを定義するものです。Node.jsの「http」モジュールインターフェースの一部であり、主にHTTP通信のパフォーマンスチューニングや接続の再利用制御に活用されます。

なお、同様の目的で使われるmaxSocketsは「アクティブなソケット全体の上限」を定めるのに対し、maxFreeSocketsは「未使用のソケットをいくつまでプールしておくか」を制御する点が異なります。

構文

agent.maxFreeSockets : number

パラメータ

このプロパティでは、以下のパラメータを扱います。

  • number — フリー状態のまま開いておけるソケットの最大数を定義します。デフォルト値は256に設定されています。

使用例

まず「maxFreeSockets.js」という名前のファイルを作成し、以下のコードをコピーして貼り付けてください。その後、次のコマンドでコードを実行します。

node maxFreeSockets.js

maxFreeSockets.js

// agent.maxFreeSockets プロパティのデモ例

// httpモジュールと agentkeepalive モジュールを読み込み
const http = require('http');
const agent = require('agentkeepalive');

const keepaliveAgent = new agent({
    maxSockets: 100,
    maxFreeSockets: 10,
    timeout: 60000, // アクティブなソケットのキープアライブ時間:60秒
    freeSocketTimeout: 30000, // フリーソケットのキープアライブ時間:30秒
});

const options = {
    host: 'tutorialspoint.com',
    port: 80,
    path: '/',
    method: 'GET',
    agent: keepaliveAgent,
};
console.log("Max free sockets: ",keepaliveAgent.maxFreeSockets);
console.log('[%s] agent status changed: %j', Date(),
keepaliveAgent.getCurrentStatus());

実行結果

上記のコードを実行すると、コンソールには次のような出力が表示されます。maxFreeSocketsとして設定した値「10」が正しく反映されていることが確認できます。

C:\home\node>> node maxFreeSockets.js
Max free sockets: 10
[Fri Apr 30 2021 12:21:12 GMT+0530 (India Standard Time)] agent status
changed:
{"createSocketCount":0,"createSocketErrorCount":0,"closeSocketCount":0,"errorSocketCount":0,"timeoutSocketCount":0,"requestCount":0,"freeSockets":{},"sockets":{},"requests":{}}

まとめ

agent.maxFreeSocketsを適切に設定することで、アイドル状態のソケットが無制限に溜まることを防ぎ、サーバー側の負荷やクライアント側のリソース消費を抑えられます。特に高頻度でHTTPリクエストを発行するアプリケーションでは、maxSocketsと併せて調整することで、効率的なコネクションプーリングを実現できます。

  1. JavaScriptのsourceプロパティとは?正規表現パターンテキストを取得する方法を解説

    JavaScriptのsourceプロパティは、RegExp(正規表現)オブジェクトに設定されたパターン文字列そのものを返すプロパティです。g(グローバルマッチ)やi(大文字・小文字を区別しない)などのフラグは結果に含まれず、マッチング対象となる純粋な正規表現テキストのみを取得できます。 動的に正規表現を組み立てたい場合や、デバッグ時に実際に適用されているパターンを確認したい場合などに活用できる便利なプロパティです。 基本構文 const regex = /pattern/flags; console.log(regex.source); // パターン文字列のみが返される サンプルコード

  2. HTML DOMのfirstChildプロパティとは?使い方と注意点を解説

    HTML DOMのfirstChildプロパティは、特定のノードの最初の子ノードをノードオブジェクトとして返すために使用されます。返される内容は、最初の子ノードの種類に応じて、テキストノード・要素ノード・コメントノードのいずれかになります。なお、このプロパティは読み取り専用です。構文HTML DOM firstChildプロパティの基本構文は以下のとおりです。node.firstChildサンプルコードここで、firstChildプロパティの具体的な使用例を見てみましょう。<!DOCTYPE html> <html> <head> <script>