hoplite
v1.1.0
Published
Plugin server
Downloads
1
Maintainers
Readme
Hoplite
Plugin server
Server
const hoplite = require('hoplite');
const app = hoplite.createServer({
'settings.hoplite.access.enabled': true,
'settings.hoplite.acccess.port': 31234
});
app.use((context, next) => {
const logger = context.get('logger');
const bus = context.get('bus');
logger.trace('init plugin 1');
const reverse = s => s.split('').reverse().join('');
for (let i = 0; i < 10; i++) {
bus.register('ping', s => Promise.resolve(`handler #${i} => ` + reverse(s)));
}
logger.trace('done plugin 1');
return next();
});
app.use((context, next) => {
const logger = context.get('logger');
const bus = context.get('bus');
logger.trace('init plugin 2');
const ping = () => {
bus.request('ping', 'Hello world!!!')
.then(result => logger.info(result))
.catch(ex => logger.error(ex));
};
bus.register('APP_START', () => setInterval(ping, 1000));
logger.trace('done plugin 2');
return next();
});
app.start();
process.once('SIGINT', () => app.stop());
Run demo
$ npm run demo
3/16/2018 11:22:03 AM INFO server is starting...
3/16/2018 11:22:03 AM INFO hoplite-access plugin is starting
3/16/2018 11:22:03 AM TRACE init plugin 1
3/16/2018 11:22:03 AM TRACE done plugin 1
3/16/2018 11:22:03 AM TRACE init plugin 2
3/16/2018 11:22:03 AM TRACE done plugin 2
3/16/2018 11:22:03 AM INFO hoplite-access server is running on port 31234
3/16/2018 11:22:04 AM INFO handler #1 => !!!dlrow olleH
3/16/2018 11:22:05 AM INFO handler #2 => !!!dlrow olleH
3/16/2018 11:22:06 AM INFO handler #3 => !!!dlrow olleH
3/16/2018 11:22:06 AM DEBUG hoplite-access plugin - request from 127.0.0.1
3/16/2018 11:22:06 AM DEBUG send request to ping
3/16/2018 11:22:07 AM INFO handler #5 => !!!dlrow olleH
3/16/2018 11:22:08 AM INFO handler #6 => !!!dlrow olleH
3/16/2018 11:22:09 AM DEBUG hoplite-access plugin - request from 127.0.0.1
3/16/2018 11:22:09 AM DEBUG send broadcast to ping
3/16/2018 11:22:09 AM INFO handler #7 => !!!dlrow olleH
3/16/2018 11:22:10 AM INFO handler #8 => !!!dlrow olleH
3/16/2018 11:22:11 AM INFO handler #9 => !!!dlrow olleH
3/16/2018 11:22:12 AM INFO handler #0 => !!!dlrow olleH
3/16/2018 11:22:13 AM INFO handler #1 => !!!dlrow olleH
3/16/2018 11:22:14 AM INFO handler #2 => !!!dlrow olleH
3/16/2018 11:22:15 AM INFO handler #3 => !!!dlrow olleH
3/16/2018 11:22:16 AM INFO handler #4 => !!!dlrow olleH
hoplite-access plugin
Simple plugin for send bus request or broadcast from outside server
Bus Request example
curl -XPOST http://localhost:31234/ping -d 'Hello world 123'
curl -XPOST http://localhost:31234/request/ping -d 'Hello world 123'
handler #2 => 321 dlrow olleH
Bus Broadcast example
$ curl -XPOST http://localhost:31234/broadcast/ping -d 'Hello world 123'
["handler #5 => 321 dlrow olleH","handler #1 => 321 dlrow olleH","handler #2 => 321 dlrow olleH","handler #3 => 321 dlrow olleH","handler #4 => 321 dlrow olleH"]
Simple web access
http://localhost:31234/