reverse-http

A reverse HTTP client

MIT License

Downloads
1K
Stars
42
Committers
2

reverse-http

Create a reverse HTTP connection to an HTTP server that supports Reverse HTTP.

Installation

npm install reverse-http --save

Usage

var reverseHttp = require('reverse-http')

var opts = {
  hostname: 'example.com',
  path: '/foo'
}

// Open an HTTP connection to example.com and accept reverse HTTP
// requests back to this machine
reverseHttp(opts, function (req, res) {
  console.log('Incoming request:', req.method, req.url)

  res.writeHead(201, {
    'Content-Type': 'text/plain',
    'Content-Length': 11
  })

  res.end('Hello World')
})

API

var server = reverseHttp(options[, onRequest])

Create a reverse HTTP connection to the HTTP server specificed in options. Returns an instance of ReverseServer. The ReverseServer inherits from http.Server and as such exposes the same API.

Besides the regular options inherited from http.request the following special options are also available:

  • tls - create an https connection (default: false)
  • rejectUnauthorized - if true, the server certificate is verified
    (default: true)

Note that the HTTP method defaults to POST.

The optional onRequest callback will be attached as a listener to the request event.

The following headers are added by default to the establishing outgoing HTTP request:

Upgrade: PTTH/1.0
Connection: Upgrade
Content-Length: 0

server.destroy()

Close the server and destroy the socket.

License

MIT