All Projects → HBM → Node Jet

HBM / Node Jet

Licence: mit
Realtime Message Bus for the Web. Javascript Implementation

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Node Jet

Wsify
Just a tiny, simple and real-time self-hosted pub/sub messaging service
Stars: ✭ 452 (+179.01%)
Mutual labels:  websockets, realtime
Stl.fusion
Get real-time UI updates in Blazor apps and 10-1000x faster API responses with a novel approach to distributed reactive computing. Fusion brings computed observables and automatic dependency tracking from Knockout.js/MobX/Vue to the next level by enabling a single dependency graph span multiple servers and clients, including Blazor apps running in browser.
Stars: ✭ 858 (+429.63%)
Mutual labels:  websockets, realtime
Vue Socket.io Extended
✌️⚡️ Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)
Stars: ✭ 506 (+212.35%)
Mutual labels:  websockets, realtime
Codenames
Stars: ✭ 159 (-1.85%)
Mutual labels:  websockets, realtime
Codeigniter Ratchet Websocket
This library contains the demo of commenting/posting realtime using CodeIgniter+AngularJS+Ratchet PHP Websocket
Stars: ✭ 84 (-48.15%)
Mutual labels:  websockets, realtime
Swim
Distributed software platform for building stateful, massively real-time streaming applications.
Stars: ✭ 368 (+127.16%)
Mutual labels:  websockets, distributed-systems
Construct
JavaScript Digital Organisms simulator
Stars: ✭ 17 (-89.51%)
Mutual labels:  websockets, distributed-systems
bong-bong
Open public chat service built for the web.
Stars: ✭ 17 (-89.51%)
Mutual labels:  websockets, realtime
Socketcluster Server
Minimal server module for SocketCluster
Stars: ✭ 70 (-56.79%)
Mutual labels:  websockets, realtime
Scada.js
Industrial distributed SCADA and MRP library for web, desktop and mobile
Stars: ✭ 66 (-59.26%)
Mutual labels:  realtime, distributed-systems
Sapphiredb
SapphireDb Server, a self-hosted, easy to use realtime database for Asp.Net Core and EF Core
Stars: ✭ 326 (+101.23%)
Mutual labels:  websockets, realtime
Entangled
Rails in real time
Stars: ✭ 108 (-33.33%)
Mutual labels:  websockets, realtime
Angelo
Sinatra-like DSL for Reel that supports WebSockets and SSE
Stars: ✭ 303 (+87.04%)
Mutual labels:  websockets, realtime
Nebula
Nebula is a powerful framwork for building highly concurrent, distributed, and resilient message-driven applications for C++.
Stars: ✭ 385 (+137.65%)
Mutual labels:  websockets, distributed-systems
Pushpin
Proxy server for adding push to your API
Stars: ✭ 3,050 (+1782.72%)
Mutual labels:  websockets, realtime
Supabase
The open source Firebase alternative. Follow to stay updated about our public Beta.
Stars: ✭ 25,142 (+15419.75%)
Mutual labels:  websockets, realtime
django-rest-live
Subscribe to updates from Django REST Framework over Websockets.
Stars: ✭ 48 (-70.37%)
Mutual labels:  websockets, realtime
transit
Massively real-time city transit streaming application
Stars: ✭ 20 (-87.65%)
Mutual labels:  distributed-systems, realtime
Channelslightscontrol
Demo app with Django Channels to control Lights over websockets. Made for PyStPete meetup(https://www.meetup.com/Saint-Petersburg-Python-Meetup/).
Stars: ✭ 14 (-91.36%)
Mutual labels:  websockets, realtime
Sandstone
PHP microframework designed to build a RestApi working together with a websocket server. Build a real time RestApi!
Stars: ✭ 98 (-39.51%)
Mutual labels:  websockets, realtime

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:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].