From 0c6cb3c9507f9c0c6bd16e40438e5ada2b255e41 Mon Sep 17 00:00:00 2001 From: Mikko Koski Date: Sat, 17 Mar 2018 11:39:32 +0200 Subject: [PATCH] Use http.Agent with keepalive set to true Instantiate HTTP(S) Agents with keepAlive set to true. This will reduce the request time for consecutive requests by reusing the existing TCP connection, thus eliminating the time used for setting up new TCP connections. The reduced response time can be as much as 200ms. --- server/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/index.js b/server/index.js index bd9d9fac..cad89cdd 100644 --- a/server/index.js +++ b/server/index.js @@ -19,6 +19,8 @@ require('source-map-support').install(); // Configure process.env with .env.* files require('./env').configureEnv(); +const http = require('http'); +const https = require('https'); const express = require('express'); const helmet = require('helmet'); const compression = require('compression'); @@ -133,6 +135,13 @@ const noCacheHeaders = { 'Cache-control': 'no-cache, no-store, must-revalidate', }; +// Instantiate HTTP(S) Agents with keepAlive set to true. +// This will reduce the request time for consecutive requests by +// reusing the existing TCP connection, thus eliminating the time used +// for setting up new TCP connections. +const httpAgent = new http.Agent({ keepAlive: true }); +const httpsAgent = new https.Agent({ keepAlive: true }); + app.get('*', (req, res) => { if (req.url.startsWith('/static/')) { // The express.static middleware only handles static resources @@ -160,6 +169,8 @@ app.get('*', (req, res) => { const sdk = sharetribeSdk.createInstance({ clientId: CLIENT_ID, baseUrl: BASE_URL, + httpAgent: httpAgent, + httpsAgent: httpsAgent, tokenStore, typeHandlers: [ {