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

Node.jsのagent.maxSocketsプロパティとは?使い方と設定例を解説

Node.jsのagent.maxSocketsプロパティは、HTTPエージェントがオリジン(ホストとポートの組み合わせ)ごとに同時に開くことができるソケットの最大数を定義するものです。デフォルト値はInfinity(無制限)に設定されており、同時接続数に上限がない状態になっています。このプロパティはNode.js標準の「http」モジュールに含まれる機能の一つです。

syntax(構文)

agent.maxSockets: number

パラメータ

  • number(数値) – エージェントが保持できる同時接続ソケットの最大数を指定します。デフォルト値はInfinityです。

maxSocketsのポイント

値を適切に設定することで、サーバーへの同時リクエスト数を制御できます。特に高負荷なアプリケーションや外部APIを多数呼び出す場合、同時接続数を制限することで、相手側サーバーへの負荷を抑えたり、リソースの枯渇を防いだりする効果があります。

使用例

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

node maxSockets.js

maxSockets.js

// agent.maxSockets メソッドのデモ例

// 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.maxSockets);
console.log('[%s] agent status changed: %j', Date(),
keepaliveAgent.getCurrentStatus());

実行結果

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

この例では、maxSockets: 100を指定しているため、コンソールには「Max sockets: 100」と表示されます。また、getCurrentStatus()メソッドを使うことで、作成されたソケット数、エラー数、タイムアウト数、空きソケットなどのエージェントの現在のステータスをJSON形式で確認できます。

  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>