hoplite

1.1.0 • Public • Published

Hoplite Build Status

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/

Package Sidebar

Install

npm i hoplite

Weekly Downloads

2

Version

1.1.0

License

ISC

Unpacked Size

52.2 kB

Total Files

17

Last publish

Collaborators

  • yaroslavgaponov