dean
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:
Key | Description |
---|---|
key | The session id (connect.sid ) can also pass session-key |
bindAddress | The ip to bind (0.0.0.0 ) |
port | The listening port (8040 ) |
https | https options (key , cert ) |
timeout | Proxy timeout (0 ) |
max-sockets | Max number of sockets for the http agent |
redis | Object containing redis options (port , host , socket , db ) |
trace | jstrace 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
Name | Type(s) | Description |
---|---|---|
opts | Object | The options |
Dean.listen()
Listen for requests
Examples:
// just a callbackdean // with a portdean // with a port and hostdean
Params
Name | Type(s) | Description |
---|---|---|
port | Number | The port on which we should listen (optional) |
host | String | The bindAddress (optional) |
cb | Function | function() |
Dean.close()
Closes the server and stops accepting requests
Params
Name | Type(s) | Description |
---|---|---|
cb | Function | function() |
Dean.addDrone()
Adds a new drone to the rotation
Example
// all of the following will be accepted// '0.0.0.0:4043'deandeandeandean
Params
Name | Type(s) | Description |
---|---|---|
drone | String, Object, Number | The drone to add |
Dean.removeDrone()
Removes a drone from the rotation
Example
dean
Params
Name | Type(s) | Description |
---|---|---|
drone | String | The drone to remove |
Instrumentation
Instrumentation is optional via jstrace.
The following probes are exposed:
dean:proxy:web:start
target
will be the request's targetmethod
will be the request methodurl
will be the request url
dean:proxy:web:end
target
will be the request's targetmethod
will be the request methodurl
will be the request urlduration
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