npm install --save eq8
var api = require('eq8')({jwt: {secret: 'secret'}});
var state = {};
api.register({
actions: [
{
name: 'Change State',
pattern: {
cmd: 'update'
},
handler: function(ctxt, args) {
state[args.id] = args.value;
}
}
],
views: [
{
name: 'View State',
pattern: {
uri: '/state/:id'
},
handler: function(ctxt, args, done) {
done(null, state[args.id]);
}
}
]
});
// Listen on port 8080
api.listen(8080);
The example above registers an Action that can be triggered via a WebSocket connection - as shown below - to modify the state
object.
var WebSocket = require('ws');
var ws = new WebSocket('http://localhost:8080');
ws.on('open', function() {
ws.send(JSON.stringify({
cmd: 'update',
id:'1',
value: 'foo'
}));
});
The state
for any specific id
was also made available via a web interface at http://localhost:8080/state/:id
by registering another concept called a View.
$ curl http://localhost:8080/state/1
foo
This package extends the eq8-api and eq8-core packages with more details and examples available at https://eq8.js.org