esrol-servers v0.0.4
esrol-servers
A wrapper for creating single / multiple server types (http, udp, websocket) with or without node cluster.
Part of Esrol
Installation
$ npm install --save esrol-servers
Node Version Compatibility
Node Version |
---|
>= 4.x |
Examples
'use strict';
let Servers = require('esrol-servers');
let httpRouter = function(req, res) {
res.end('hello');
};
let tcpRouter = function(socket) {
socket.write('hello');
socket.end();
};
let udpRouter = function(msf, info) {
console.log(msf.toString());
};
let onHTTPServerListening = function() {
console.log('http server is listening');
};
let onTCPServerListening = function() {
console.log('tcp server is listening');
};
let onUDPServerListening = function() {
console.log('udp server is listening');
};
let onHTTPWebSocketConnection = function(socket) {
console.log ('http webSocket connected');
};
let httpSettings = {
router: httpRouter,
onListening: onHTTPServerListening,
port: 3333,
webSocket: true,
cluster: true
};
let tcpSettings = {
port: 3334,
cluster: true,
router: tcpRouter,
onListening: onTCPServerListening
};
let tcpOptions = {
allowHalfOpen: false,
pauseOnConnect: false
};
let udpSettings = {
type: 'udp4',
port: 3335,
cluster: true,
router: udpRouter,
onListening: onUDPServerListening
};
let httpServer = Servers.createHTTPServer(httpSettings);
let tcpServer = Servers.createTCPServer(tcpSettings, tcpOptions);
let udpServer = Servers.createUDPServer(udpSettings);
let httpWebSocket = Servers.createHTTPWebSocket(httpServer);
httpWebSocket.on('connection', onHTTPWebSocketConnection);
Servers.cluster(4); // number of cores
if (Servers.isMaster) {
console.log('master');
} else {
console.log('slave');
}
API
Members
Methods
createHTTPSServer()
Not implemented yet
createTCPServer(settings, options) ⇒ object
Create tcp server
Returns: object - server - server instance
Throws:error - error - if wrong settings are passed
Param | Type | Description |
---|---|---|
settings | object | see example |
options | object | see example |
See: Examples
createUDPServer(settings) ⇒ object
Create udp server
Returns: object - server - server instance
Throws: error - error - if wrong settings are passed
Param | Type | Description |
---|---|---|
settings | object | see example |
See: Examples
createHTTPServer(settings) ⇒ object
Create http server
Returns: object - server - server instance
Throws: error - error - if wrong settings are passed
Param | Type | Description |
---|---|---|
settings | object | see example |
See: Examples
createHTTPWebSocket(server) ⇒ object
Create http websocket
Returns: object - server - server instance
Param | Type | Description |
---|---|---|
server | object | http server instance |
See: Examples
createHTTPSWebSocket()
Not implemented yet
cluster(cores)
Trigger node cluster
Param | Type | Description |
---|---|---|
cores | int | number of cores (2, 4 etc) |
getHTTPServerInstance() ⇒ object
Get http server instace
Returns: object - server - server instance
getHTTPSServerInstance()
Not implemented yet
getHTTPWebSocketInstance() ⇒ object
Get http websocket instance
Returns: object - server - websocket server instance
getUDPServerInstance() ⇒ object
Get udp server instance
Returns: object - server - server instance
getTCPServerInstance() ⇒ object
Get tcp server instance
Returns: object - server - server instance
getHTTPServerPort() ⇒ int
Retrieve the port the http server is currently listening on
Returns: int - port
getHTTPSServerPort()
not implemented yet
getUDPServerPort() ⇒ int
Retrieve the port the udp server is currently listening on
Returns: int - port
getTCPServerPort() ⇒ int
Retrieve the port the tcp server is currently listening on
Returns: int - port
getWorkers() ⇒ array
Get all online workers
Returns: array - workers - array with all workers
Contriubtion
Any contribution will be highly appreciated. Just make sure that:
- Your code works.
- You have 100% successful tests coverage.
- You have comments in your code.
- Follows eslint config. Exceptions are possible where that make sense.
Tests
To run the test suite, first install the dependencies, then run npm test
:
$ npm install
$ npm test