dean
v0.1.2
Published
Proxy routing table with cluster support
Downloads
6
Readme
dean
Author
Evan Lucas
License
MIT
Installation
$ npm install -g deanTests
$ npm testCoverage
$ npm run coverAPI
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 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
| 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'
dean.addDrone('0.0.0.0:4043')
dean.addDrone('4043')
dean.addDrone(4043)
dean.addDrone({
port: 4043
, host: '0.0.0.0'
})Params
| Name | Type(s) | Description | | ---- | ------- | ----------- | | drone | String, Object, Number | The drone to add |
Dean.removeDrone()
Removes a drone from the rotation
Example
dean.removeDrone('0.0.0.0:4043')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:starttargetwill be the request's targetmethodwill be the request methodurlwill be the request url
dean:proxy:web:endtargetwill be the request's targetmethodwill be the request methodurlwill be the request urldurationwill be the duration of the request in ms
dean:drone:adddronewill be the added drone
dean:drone:removedronewill 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
