This section highlights the realtime resources available for Node.js developers.


Realtime Node.js Libraries

Realtime application framework (Node.JS server) – Socket.IO enables real-time bidirectional event-based communication. It consists in: a Node.js server (this repository), a Javascript client library for the browser (or a Node.js client). Some implementations in other languages are also available.

Sails – Sails.js is a web framework that makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app & API development. It’s especially good for building realtime features like chat.

Racer: Realtime model synchronization engine for Node.js – Racer is a realtime model synchronization engine for Node.js. By leveraging ShareDB, multiple users can interact with the same data in realtime via Operational Transformation, a sophisticated conflict resolution algorithm that works in realtime and with offline clients. ShareDB also supports PubSub across multiple servers for horizontal scaling. Clients can express data subscriptions and fetches in terms of queries and specific documents, so different clients can be subscribed to different overlapping sets of data. On top of this sophisticated backend, Racer provides a simple model and event interface for writing application logic.

Realtime Multiplayer in HTML5 – An example using node.js, socket.io and HTML5 Canvas to explain and demonstrate realtime multiplayer games in the browser.

Straw: Realtime processing framework for Node.js – Straw lets you run a Topology of worker Nodes that consume, process, generate and emit messages. Use it anywhere you need data processed in real-time. Straw is ideal for building flux style reactive webapps. You create processing nodes that pass messages to each other or the outside world. Straw’s approach makes it easy to break your problem down in to small steps and develop iteratively.

Express-Status-Monitor – Simple, self-hosted module based on Socket.io and Chart.js to report realtime server metrics for Express-based node servers.


Real-Time Analytics Dashboard with NodeJs, Socket.io, VueJs

Specs

  • Coligo
  • March 2016

Resources

Synopsis

In this tutorial we’ll be using NodeJs, Socket.io, and VueJs to build a real-time web analytics dashboard, similar to what you would find on Google Analytics. Have a look at the demo to see what the end product will look like and feel free to clone the GitHub repository which has the completed code for this tutorial.


Specs

  • Author: Krasmir Tsonev
  • Date: May 2013

Resources

Synopsis

NodeJS gives me the ability to write back-end code in one of my favorite languages: JavaScript. It’s the perfect technology for building real time applications. In this tutorial, I’ll show you how to build a web chat application, using ExpressJS and Socket.io.


Feathers – Instant Realtime and Rest APIs with Node.js

Specs

  • Site: Feathers

Resources

Synopsis

With Feathers you can build prototypes in minutes and production ready real-time backends and REST APIs in days.


Why the Hell Would You Use Node.js

Specs

  • Author: Node.js Foundation
  • February 2017

Resources

Synopsis

In one sentence: Node.js shines in real-time web applications employing push technology over websockets. What is so revolutionary about that? Well, after over 20 years of stateless-web based on the stateless request-response paradigm, we finally have web applications with real-time, two-way connections, where both the client and server can initiate communication, allowing them to exchange data freely.


Realtime Infrastructure Services

  • Realtime API Infrastructure – Realtime API infrastructure specifically allows developers to build realtime data push into their existing APIs.  Typically, you would not need to modify your existing API contracts, as the streaming server would serve as a proxy. The proxy design allows these services to fit nicely within an API stack. This means it can inherit other facilities from your REST API, such as authentication, logging, throttling, etc. It can be combined with an API management system.  In the case of WebSocket messages being proxied out as HTTP requests, the messages may be handled statelessly by the backend. Messages from a single connection can even be load balanced across a set of backend instances.
    • Fanout/Pushpin – Fanout is a real-time API development kit that helps you push data to connected devices easily. Fanout is a cross between a reverse proxy and a message broker. Pushpin is the open source version.
    • Streamdata.io – Streamdata.io a SaaS API proxy tool that converts standard API requests into a streaming API. In other words, it provides a proxy as a service for any HTTP API by polling and acting as a streaming API.
    • LiveResource – LiveResource is a protocol specification and JavaScript reference library for receiving live updates of web resources. It has the following principles:
  • Realtime Application Infrastructure – Realtime app infrastructure sends data to browsers and clients. It typically uses pub/sub messaging, webhooks, and/or websockets — and is separate from an application or service’s main API.
    • Firebase – Firebase is a BaaS (Backend-as-a-Service) that allows developers to create web applications with no server-side programming required.
    • Pubnub – PubNub is a programmable Data Stream Network (DSN) and realtime infrastructure-as-a-service (IaaS) company. Primarily, they are a messaging solution hosted on a cloud service that allows developers to publish data instantly to one or multiple devices.
    • Pusher – Pusher is a hosted service that allows developers to add realtime bi-directional functionality via WebSockets (with HTTP-based fallbacks) to the web and mobile apps.
    • Ably – Ably is a realtime data delivery platform that provides creators the tools to create, deliver, and manage projects. Their main realtime functionality consists of pub/sub, presence, authentication, encryption, and connection state recovery.