All Projects → watson → reverse-http

watson / reverse-http

Licence: MIT License
A reverse HTTP client

Programming Languages

javascript
184084 projects - #8 most used programming language

reverse-http

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

Build status js-standard-style

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].