Numerous Pulsating Martians
    Wondering what’s next for npm?Check out our public roadmap! »

    node-jet

    2.1.1 • Public • Published

    About

    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).

    Synopsis

    Start a Daemon:

    $ jetd.js

    Provide Content:

    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);

    Consume Content:

    // 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});

    Tutorial

    Read the Todo-App Tutorial (Vanilla JS client) or the React + Redux Variant for building this simple collaborative realtime app:

    Jet Todo-App

    Install

    NPM

    $ npm install node-jet
    

    Stand-Alone Daemon

    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
    

    Integrated Daemon

    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
    });

    Radar

    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.

    Doc

    For further info and documentation refer to the Jet Homepage.

    Todo-App

    There is also the canonical ToDo-App available:

    Install

    npm i node-jet

    DownloadsWeekly Downloads

    17

    Version

    2.1.1

    License

    MIT

    Unpacked Size

    343 kB

    Total Files

    77

    Homepage

    jetbus.io

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar