Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

async-keepalive

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

async-keepalive

Forked from electrode-keepalive

  • 0.2.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

electrode-keepalive

electrode-keepalive provides an HttpAgent capable of maintaining available sockets using IP address instead of hostname lookup. This allows for graceful handling of dns changes/failover when changes occur in routing configuration. This is particularly important when using keep-alive enabled connections. It resolves part of the problems in this issue

Usage

const ElectrodeKeepAlive = require("electrode-keepalive");

const opts = {
  keepAlive: true,
  keepAliveMsecs: 30000, // socket send keep alive ping every 30 secs
  maxSockets: 100,
  maxFreeSockets: 10
};

const keepAlive = new ElectrodeKeepAlive(opts);

const dnsOptions = {};

keepAlive.preLookup("www.google.com", dnsOptions, (err) => {
  request({url: "http://www.google.com", agent: keepAlive.agent});
});

Since this module works by overriding http.Agent's synchronous getName method to return the IP instead of hostname, it has to use a pre-populated DNS mapping. Before the mapping is populated, it can't use IP. To avoid that in your first request, you should always call the preLookup method first.

APIs

Properties

agent

instance.agent - Read only instance property to access the http/https agent.

https

instance.https - Read only instance property. If true, then the agent is an https agent.

static DNS_CACHE

ElectrodeKeepAlive.DNS_CACHE - Internal DNS mapping object.

Methods

constructor

constructor(options)

Creates an instance of ElectrodeKeepAlive.

  • options should be the default http agent settings that are passed through to the underlying implementation. Additionally the following options are supported:

    • https - If true, then creates an https Agent.
    • expiry - The duration (in milliseconds) that ip entries in the DNS mapping will be refreshed. Default is 5000ms.

preLookup

instance.preLookup(host, options, callback)

Allows ElectrodeKeepAlive to do a DNS lookup on the host first to populate its DNS mapping.

The arguments matches Node dns module lookup.

clearDnsCache

instance.clearDnsCache() - Wipes out current DNS mapping.

getName

instance.getName(options)

The internal method to override http agent's default getName. Not intended for public use.

Keywords

FAQs

Package last updated on 22 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc