Join the chat at https://gitter.im/lipp/node-jet npm version Build Status Code Climate Coverage Status js-standard-style deps
This is Jet for JavaScript. Jet is the hybrid of an In-Memory Database and a Realtime Push-Framework. Node and Browsers are supported (using Browserify).
$ jetd.js
var jet = require('node-jet'); // connect to daemon var peer = new jet.Peer({ url: 'ws://localhost:11123' }); // provide methods/factories/services/actions/etc var greet = new jet.Method('greet'); greet.on('call', function(who) { console.log('Hello', who); }); peer.add(greet); // provide documents/realtime-status/configuration/etc var jim = new jet.State('persons/#123', getPerson('#123')); jim.on('set', function(changedPerson) { setPerson('#123', changedPerson); // changes are propageted automatically }); peer.add(jim); // provide read-only stuff var nowState = new jet.State('time/now', new Date().getTime()); peer.add(nowState); // change async setInterval(function() { nowState.value(new Date().getTime()); }, 100);
// fetch/query content var youngestPersons = new jet.Fetcher() .path('startsWith', 'persons/') .sortByKey('age', 'number') .ascending() .range(1, 20) .on('data', function(persons) { console.log(persons); }); peer.fetch(youngestPersons); // call methods peer.call('greet', ['Steve']).then(function(response) { console.log(response); }); // set states peer.set('person/#123', {name: 'Jose', age: 33});
Read the Todo-App Tutorial (Vanilla JS client) or the React + Redux Variant for building this simple collaborative realtime app:
$ npm install node-jet
The package provides a stand-alone Jet Daemon which listens on ports 11122 (trivial protocol) and 11123 (WebSockets) per default.
Start it like this (globally):
$ jetd.js
Or - if installed locally:
$ node_modules/.bin/jetd.js
If you want the Jet Daemon to listen for WebSockets on the same port as your existing (node.js) HTTP server, use the daemon.listen({server:httpServer}) method like this:
var httpServer = http.createServer(function(req, res) { // serve your stuff }); httpServer.listen(80); var daemon = new jet.Daemon(); daemon.listen({ server: httpServer });
Open Radar on jetbus.io, which allows you to see/observe Your Jet States and Methods. Your local Jet Daemon's default WebSocket address is ws://localhost:11123
.
For further info and documentation refer to the Jet Homepage.
There is also the canonical ToDo-App available: