1.1.0 • Published 9 years ago

@carsondarling/multilisten v1.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

Multilisten

Multilisten makes it super easy to listen on both HTTP and HTTPS, using the same app instance.

Example Usage

var app = function(req, res) {
  res.end('Hello World');
};

multilisten(app, {
  mode: 'redirect',
  sslOptions: {
    cert: '<certificate>',
    key: '<key>'
  }
});

/**
 * App is now listening on both ports 80 and 443, and will automatically
 * redirect from HTTP to HTTPS.
 */

API

multilisten(app, options)

app

app is any Javascript function that can serve as a request listener, with the signature:

function(request, response) { }

The app exposed by Express is fully compatible, so Multilisten will work with any Express-based application with minimal modification.

options

options.httpPort The port for the HTTP server to listen on. Default 80

options.httpsPort The port for the HTTPS server to listen on. Default 443

options.sslOptions Options for the HTTPS server, passed directly to Node's HTTPS module

options.httpsBaseURL The base URL to redirect HTTP requests to

If this is not specified, only the protocol will be changed (e.g. http://domain.com/blah will be redirected to https://domain.com/blah, ignoring ports).

If it is specified (e.g. with https://domain.com:8443), a the path will be appended (e.g. http://domain:8000/blah will be redirected to https://domain.com:8443). Please be careul to include HTTPS in the base URL, otherwise it is possible to redirect to an unsecure endpoint.

options.mode

The mode determines which servers Multilisten will use to listen, and how they will respond. There are 4 possible modes: http, https, both, and redirect. Default redirect

ModeHTTP ResponseHTTPS ResponseDescription
httpHandled by appDisabledListen on HTTP only
httpsDisabledHandled by appListen on HTTPS only
bothHandled by appHandled by appUse either HTTP or HTTPS
redirectRedirect to HTTPSHandled by appForce HTTPS (default)