0.1.2 • Published 10 years ago

dean v0.1.2

Weekly downloads
4
License
MIT
Repository
github
Last release
10 years ago

dean

Build Status

Author

Evan Lucas

License

MIT

Installation

$ npm install -g dean

Tests

$ npm test

Coverage

$ npm run cover

API

Dean

Constructor

opts can contain the following:

KeyDescription
keyThe session id (connect.sid) can also pass session-key
bindAddressThe ip to bind (0.0.0.0)
portThe listening port (8040)
httpshttps options (key, cert)
timeoutProxy timeout (0)
max-socketsMax number of sockets for the http agent
redisObject containing redis options (port, host, socket, db)
tracejstrace instance

redis note: the redis key can also contain a redisClient. This should be an instance of redis.createClient. redis.socket will take priority over redis.host and redis.port.

Params
NameType(s)Description
optsObjectThe options

Dean.listen()

Listen for requests

Examples:

// just a callback
dean.listen(function() {
  console.log('listening on port', dean.port)
})

// with a port
dean.listen(8044, function() {
  console.log('listening on port', 8044)
})

// with a port and host
dean.listen(8044, '127.0.0.1', function() {
  console.log('listening at', '127.0.0.1:8044')
})
Params
NameType(s)Description
portNumberThe port on which we should listen (optional)
hostStringThe bindAddress (optional)
cbFunctionfunction()

Dean.close()

Closes the server and stops accepting requests

Params
NameType(s)Description
cbFunctionfunction()

Dean.addDrone()

Adds a new drone to the rotation

Example

// all of the following will be accepted
// '0.0.0.0:4043'
dean.addDrone('0.0.0.0:4043')
dean.addDrone('4043')
dean.addDrone(4043)
dean.addDrone({
  port: 4043
, host: '0.0.0.0'
})
Params
NameType(s)Description
droneString, Object, NumberThe drone to add

Dean.removeDrone()

Removes a drone from the rotation

Example

dean.removeDrone('0.0.0.0:4043')
Params
NameType(s)Description
droneStringThe drone to remove

Instrumentation

Instrumentation is optional via jstrace.

The following probes are exposed:

  • dean:proxy:web:start
    • target will be the request's target
    • method will be the request method
    • url will be the request url
  • dean:proxy:web:end
    • target will be the request's target
    • method will be the request method
    • url will be the request url
    • duration will be the duration of the request in ms
  • dean:drone:add
    • drone will be the added drone
  • dean:drone:remove
    • drone will be the removed drone

An example script has been provided at ./scripts/trace.js. To test it out:

$ jstrace ./scripts/trace.js

# Then in another terminal
$ npm test