From d0b9b18da0fd919c6c728f2d34091acd2a1f68b1 Mon Sep 17 00:00:00 2001 From: Yiyu He Date: Mon, 20 Feb 2017 11:51:44 +0800 Subject: [PATCH] feat: timeout support humanize ms (#48) --- lib/agent.js | 5 ++++- package.json | 4 +++- test/agent.test.js | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/agent.js b/lib/agent.js index 311cd71..3c8d984 100644 --- a/lib/agent.js +++ b/lib/agent.js @@ -9,6 +9,7 @@ 'use strict'; const OriginalAgent = require('./_http_agent').Agent; +const ms = require('humanize-ms'); class Agent extends OriginalAgent { constructor(options) { @@ -22,16 +23,18 @@ class Agent extends OriginalAgent { if (options.keepAliveTimeout) { options.freeSocketKeepAliveTimeout = options.keepAliveTimeout; } + options.freeSocketKeepAliveTimeout = ms(options.freeSocketKeepAliveTimeout); // Sets the socket to timeout after timeout milliseconds of inactivity on the socket. // By default is double free socket keepalive timeout. if (options.timeout === undefined) { options.timeout = options.freeSocketKeepAliveTimeout * 2; - // make sure socket default inactivity timeout >= 30000 + // make sure socket default inactivity timeout >= 30s if (options.timeout < 30000) { options.timeout = 30000; } } + options.timeout = ms(options.timeout); super(options); diff --git a/package.json b/package.json index f820d19..ba3b966 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,9 @@ "keepalive", "agentkeepalive" ], - "dependencies": {}, + "dependencies": { + "humanize-ms": "^1.2.0" + }, "devDependencies": { "egg-bin": "^1.9.1", "egg-ci": "^1.1.0", diff --git a/test/agent.test.js b/test/agent.test.js index 07eb484..e744c0e 100644 --- a/test/agent.test.js +++ b/test/agent.test.js @@ -108,8 +108,8 @@ describe('test/agent.test.js', () => { it('should inactivity socket timeout', done => { const name = 'localhost:' + port + ':'; const agentkeepalive = new Agent({ - freeSocketKeepAliveTimeout: 5000, - timeout: 1000, + freeSocketKeepAliveTimeout: '5s', + timeout: '1s', }); assert(!agentkeepalive.sockets[name]); assert(!agentkeepalive.freeSockets[name]);