Real-Time Web Technologies Guide
Note: This page is a work in progress. I plan to update it with new technologies as I find them and increase the information on each as I find the time. If you know of a technology that should be included in this guide then please raise a pull request. If you have any questions please drop me an email.
As above, you can contribute to the list by making a pull request to the Realtime Web Technologies Guide github repo.
Hosted Realtime Services
General Messaging & PubSub
Ably
Ably is a platform that makes it easy for you add realtime messaging and streaming data to your application. The global service is uniquely able to offer solutions to the most difficult aspects of messaging at scale such as limitless scale, connection state recovery, guaranteed message delivery, client library “intelligence” to work around transient network problems. The Ably service operates in more than 24 data centres globally offering the lowest latencies globally.
See the complete feature set.
- WebSocket
- HTTP Fallback
- XHR streaming
- HTTP polling
- JSONP
- REST
- Presence
- Basic and Token based authentication
- Symmetric encryption
- Binary encoded data
- Push notifications
- WebHooks
- Android
- Cordova
- Go
- iOS
- Java Realtime
- JavaScript
- Mono
- .NET
- Node.JS
- PHP
- Python
- Ruby
- Xamarin
Fanout (now part of Fastly)
Build and scale realtime APIs. Fanout’s push CDN makes it easy. Add live updates to your websites and web services using REST, HTTP streaming, WebSockets, Webhooks, and XMPP
For front-end applications, Fanout’s JavaScript library receives realtime JSON notifications with just a few lines of code. Integration is quick and simple.
For services and APIs, you can add realtime functionality with minimal modification. By acting as a reverse proxy, Fanout’s global cloud invisibly bridges realtime clients with the services you’ve already built.
- WebHooks
- PubSub
- XMPP
- REST
- WebSockets
- HTTP Streaming
- HTTP Long-Polling
- REST
Hydna (no longer available)
A scalable real-time platform
Hydna is a hosted backend into which you can send data and have it instantly appear on other devices.
Instantly move data across platforms, technologies, and devices
Hydna is ideal for building dashboards, activity streams, notification- and chat systems, real-time collaboration, live statistics, remote controls, multiplayer games, and more.
- Real-Time messaging
- Binary
- WebSockets
- Comet
- Flash
- HTTP/REST
- Behaviors
- Routing
- Authentication
- Room partitioning
- Presence
- .NET
- Erlang
- Java
- Node.js
- Objective-C
- PHP
- Python
- Ruby
- Multiplexing
PubNub
Pubnub is the fastest cloud-hosted realtime messaging system for web and mobile apps.
- HTTP
- BOSH
- Fallback-support
- Real-Time Client Push
- Real-Time messaging
- Real-Time data
- Coldfusion
- .NET
- Erlang
- Google App Engine (GAE)
- Java
- JavaScript
- Lua-Corona
- node.js
- Objective-C
- Perl
- PHP
- Python
- Ruby
- Silverlight
- Titaniumf
- REST API
- PubSub
Pusher
Pusher is a hosted API for quickly, easily and securely adding scalable realtime functionality to web and mobile apps.
- WebSockets
- HTTP fallback
- Flash socket fallback
- Real-Time Client Push
- Real-Time messaging
- Real-Time Data
- in-built security
- HTML5
- JavaScript
- Objective-C
- Ruby
- PHP
- node.js
- .NET
- Silverlight
- ActionScript
- Google App Engine (GAE)
- Erlang
- Perl
- Coldfusion
- Python
- Groovy
- Java
- REST API
- Presence
- PubSub
Realtime.co (no longer available)
The Realtime Messaging Framework is a cloud-hosted messaging system for websites and mobile apps that require constant content updates in just a few milliseconds, enabling any application to interact with millions of connected users in a fast and secure way.
- Websockets
- Fallback-support (streaming and polling)
- Guaranteed message delivery with “at-least-once” contract
- Real-Time Client Push
- Real-Time messaging
- Real-Time data
- Mobile Push Notifications for iOS and Android (APNS and FCM)
- Webhooks
- .NET
- Java / Android
- JavaScript
- Lua
- iOS
- Titanium Appcelerator
- Windows Phone
- Node.js
- Objective-C
- PHP
- Python
- C/C++
- Ruby
- Silverlight
- ActionScript
- React Native
- Xamarin
- Unity
- Ionic/Cordova/PhoneGap
- Go
- Tessel (IoT)
- REST API
- Pub/Sub
- Presence
- built-in security (authentication and authorization)
- multiplexing (through the use of channels)
Diffusion by DiffusionData
Diffusion (formerly Reappt, from Push Technology — now DiffusionData) is a real-time data platform that handles low-latency streaming and secure distribution of data at scale. Available as a fully managed cloud service, on-premise, or hybrid, with delta streaming to reduce bandwidth and SDKs for JavaScript, Java, .NET, Python, iOS, Android, and C.
Streamdata.io (acquired by Axway)
Streamdata.io is a real-time cache proxy allowing you to poll JSON REST APIs and push updates to clients. But wait, there is more: Streamdata.io keeps a history of modifications that occur on the data between two pollings! This way, streamdata.io is able to give you the list of modifications which happened since last time you fetched the data.
- Server-Sent Events
- JSON Patch
- Fallback-support
- REST
- PubSub
- Proxy
- JavaScript
- iOS
- Java
- Android
Tambur.io (no longer available)
Tambur.io provides your business with a simple messaging API to build scalable realtime web and mobile apps.
- Realtime messaging
- HTTP/REST
- SSL
- Websockets
- Comet
- Streams
- Modes
- Broadcast
- Unicast
- Authcast
- Presence
- Direct Messaging
- PHP
- Ruby
- Java
- .Net
- Erlang
- JavaScript
WebSync on-demand (by FrozenMountain) (no longer available)
- Comet
- Real-Time Client Push
- Real-Time messaging
- Real-Time data
Data Synchronisation, Persistence, Full Stack
CloudBoost (hosted service discontinued; open source on GitHub)
- Open Source and hosted
- Data Storage
- Search
- Real-Time
- Relations
- Files
- Geospatial
- Authentication
- Queues
Convergence
Convergence is the world’s first API specifically designed for realtime collaborative applications. It was created as a one-stop shop for realtime collaborative application development, with a rich JSON-inspired data model API, guaranteed conflict resolution, and first-class APIs for users, presence, chat, and collaboration awareness.
- Hosted
- Javascript client only (for now)
- Specifically designed for realtime collaboration
- Web administration interface
- Realtime data model editor
- Conflict resolution
- Rich text support coming Q2 2018
Firebase
A scalable real-time backend for your web app. Build apps really fast without the hassle of managing servers
- iOS
- Java / Android
- JavaScript
- WebSockets
- BaaS (Backend as a Service)
Acquired by Google. Still active.
Google Drive Realtime API (retired by Google in 2019)
Add Realtime collaboration to your app Give your users the power of Google Docs–style collaboration. All JavaScript. No server. No sweat.
Meteor
Meteor is a set of new technologies for building top-quality web apps in a fraction of the time, whether you’re an expert developer or just getting started.
- Node.js
- fullstack
- HTTP Streaming
- HTTP Long-polling
- WebSockets
Not to be confused with the original Meteor Comet server
Realtime.co Cloud Storage (no longer available)
The Realtime.co Cloud Storage is a highly-scalable backend-as-a-service based on Amazon DynamoDB. Built-in real-time notifications keep data synchronized between users (web and mobile).
- BaaS (Backend-as-a-Service)
- Real-time data sync
- JavaScript
- iOS
- Android (Java)
- Node.js
- React Native
- Unity
- NoSQL
- DynamoDB
- HTTP Streaming
- HTTP Long-polling
- WebSockets
- Mobile Push Notifications for iOS and Android (APNS and GCM)
- Server-side triggers and business logic
simperium
Simperium is a service for developers to move data everywhere it’s needed, instantly and automatically.
Messaging: with focus on delivery to servers
Superfeedr
- RSS
- PubSubHubbub
DataSift (acquired by Meltwater)
- Social Media data
- RSS
- HTTP Streaming
Other
Echo (no longer available)
Self Hosted Realtime Solutions
apache-websocket
WebSocket module for Apache
- PHP
- WebSockets
- Apache
APE Project
- WebSockets
- Comet
Alchemy Websockets
An extremely efficient C# WebSocket server for .NET projects.
- WebSockets
- .NET
- C#
ArduinoWebsocketServer
This library implements a Websocket server running on an Arduino
- WebSockets
- Server
- Arduino
Atmosphere
- Comet
- WebSockets
- Scala
- Groovy
- Java
Autobahn WebSocket
Autobahn provides Open-Source client and server implementations of WebSocket and WAMP.
- WebSockets
- Java
- Android
Beacon Push (no longer available)
- WebSockets
- Comet
- Fallback-support
- Real-Time Client Push
- Real-time messaging
- Real-Time Data
- Python
- Ruby
- PHP
- node.js
- REST API
BrainSocket (no longer available)
A Laravel package that allows you to get up and running with real-time event-driven PHP apps using WebSockets.
- Laravel
- WebSockets
- PHP
Caplin System’s Liberator
- Comet
- WebSockets
- Fallback-support
- PubSub
Centrifugo
Real-time messaging server in Go language. This is a successor of Centrifuge. Server has simple API to publish messages into channels, provides presence and history information and more. Javascript client available to communicate from web browser. See full documentation on gitbooks.io.
- Go
- JavaScript
- WebSockets
- SockJS
- HTTP-fallback
- Presence
- Event/Message history
- PubSub
cometD
- Comet
Cowboy
- WebSockets
- Erlang
Cramp (no longer available)
- WebSockets
- Server Sent Events
- EventSource
- Ruby
Deepstream.io
Deepstream.io is a fast and easy to use realtime server written in node. It offers persistant data structures, RPC and PubSub messaging that works on both client and server. Deepstream can connect to a variety of caches and databases and scales horizontally across multiple servers.
- JavaScript
- WebSockets
- HTTP-fallback
- PubSub
- Persistant Data Structures
- RPC
- Events
- node.js
em-websocket
EventMachine based, async, Ruby WebSocket server.
- Ruby
- WebSockets
- Server
Emitter
Emitter is a free open source real-time messaging service that connects all devices. This publish-subscribe messaging API is built for speed and security.
- MQTT Publish/Subscribe API
- Scalable and Clustered
- Easy to Use
- Low Latency, uses LibUV under the hood
- Scalable Message Filtering
- Message Storage and Playback
- Binary Messages
- Websocket Support
- Docker Deployment
- SSL/TLS, Per-Channel Authorization and ACLs
erlang_websocket
- Erlang
- WebSockets
- Server
erlycomet
- Comet
FAYE
- Real-Time messaging
- Bayeux
- node.js
- Ruby
Firehose.io
Firehose is a minimally invasive way of building realtime web apps without complex protocols or rewriting your app from scratch. Its a dirt simple pub/sub server that keeps client-side Javascript models in synch with the server code via WebSockets or HTTP long polling.
- WebSockets
- HTTP Long-Polling
- Ruby
Fleck
Fleck is a WebSocket server implementation in C#. Fleck requires no inheritance, container, or additional references.
- WebSockets
- .NET
Garufa
Garufa is an open source Ruby WebSocket server which implements the Pusher protocol. It is built on top of Goliath, a high performance non-blocking web server, and inspired by Slanger, another server compatible with Pusher.
- Open source
- Ruby
- Server
- WebSockets
Goliath
- Ruby
- Asynchronous
- non-blocking
- HTTP Streaming
ICEfaces
Java-WebSocket
This repository contains a barebones WebSocket server and client implementation written in 100% Java. The underlying classes are implemented using the Java ServerSocketChannel and SocketChannel classes, which allows for a non-blocking event-driven model (similar to the WebSocket API for web browsers).
- Java
- WebSockets
- Server
- Client
Jetty
- WebSockets
- HTTP Streaming
juggernaut deprecated
- WebSockets
- Comet
- Fallback-support
- node.js
jwebsocket
- Java
- WebSockets
Kaazing
- WebSockets
- Fallback-support
libwebsockets
C Websockets Server Library
- C
- WebSockets
- Server
LightStreamer
- Comet
- WebSockets
Meteor Comet server (no longer available)
- Comet
- Perl
Migratory (now MigratoryData)
- Comet
- WebSockets
misultin
- WebSockets
- Erlang
Mojolicious
A modern Perl web framework built from the ground-up as a nonblocking web server, including built-in support for web sockets.
- Full nonblocking web server
- WebSockets
- Perl
nowjs
- node.js
Doesn’t appear to be actively maintained any more and the website is down.
Nugget (no longer available)
A web socket server implemented in c#.
The goal of the projects is to create an easy way to start using HTML5 web sockets in .NET web applications.
- C#
- .NET
phpDaemon
Asynchronous server-side framework for Web and network applications implemented in PHP using libevent. phpDaemon can handle thousands of simultaneous connections
- PHP
PHP WebSocket
- PHP
- WebSockets
Persevere (no longer available)
- Comet
- PubSub
Plezi
Plezi is an easy to use Ruby Websocket Framework, with RESTful routing support and an MVC supportive design. It can also be used as middleware in other Rack frameworks (i.e. Rails / Sinatra apps). It’s name comes from the word “fun” in Haitian, since Plezi is really fun to work with and it keeps our code clean and streamlined.
- WebSockets
- HTTP RESTful routes
- Stand-Alone / Middleware
- Ruby with C extension server (uses the fast iodine server) - Optimized for and limited to BSD / Linux and MacOS.
Pokein (no longer available)
- Comet
- ASP.NET
- Mono
Prosody
Prosody is a modern flexible communications server for Jabber/XMPP written in Lua. It aims to be easy to set up and configure, and light on resources. For developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.
- Jabber
- XMPP
- Lua
- BOSH
Ratchet
A PHP 5.3 (PSR-0 compliant) component library for serving/consuming sockets and building socket based applications. Build up your application (like Lego!) through simple interfaces using the decorator and command patterns. Re-use your application without changing any of its code just by wrapping it in a different protocol.
- PHP
- WebSockets
RethinkDB
RethinkDB is the first open-source scalable database built for realtime applications. It exposes a new database access model — instead of polling for changes, the developer can tell the database to continuously push updated query results to applications in realtime. RethinkDB allows developers to build scalable realtime apps in a fraction of the time with less effort.
- Open-source
- database
- NoSQL
- schemaless JSON documents
- Distributed
- High availability
- automatic failover
- robust fault tolerance
- Javascript
- Python
- Ruby
- Go
- Elixir
- .NET
SignalR
- WebSockets
- Long-polling
- ASP.NET
- IIS
- PubSub
- RMI
Slanger
Slanger is an open source server implementation of the Pusher protocol written in Ruby.
- Ruby
- WebSockets
- Server
socket.io
Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It’s care-free realtime 100% in JavaScript.
- WebSockets
- Fallback-support
- Flash Socket
- HTTP Long-Polling
- node.js
- Cross Domain Support
SockJS
SockJS is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.
- WebSockets
- Fallback-support
- HTTP Streaming
- HTTP Polling
- JSONP Polling
- Cross Domain support
- EventSource
SocketCluster
A highly scalable realtime environment for Node.js SocketCluster is a new kind of engine which sits between Node.js and your code to provide you with a resilient, scalable, realtime architecture.
With SC, you can build systems that make use of all CPU cores on a machine/instance. This removes the limitations of having to run your Node.js code as a single thread.
SC also gives you the flexibility to scale up and scale out easily and at your own pace.
- Node.js
SocketTornad.IO (no longer available)
Implementation of the Socket.IO Websocket emulation protocol in Python on top of the non-blocking Tornado Web Framework.
- Python
- WebSockets
- Server
- Client
Spike-Engine (no longer available)
Spike-Engine allows quick and painless creation of real-time web services in .NET. Spike-Engine focuses on latency, bandwith and perfomance and has been designed and proven to be robust and reliable. The technology has been tested in production environment with thousands of simultaneous connections and used to build reliable game and application servers.
- RPC
- Automatic Client Stub Generation
- WebSockets
- Fallback Support
- Cross-Domain Support
- Comet
- Long-Polling
- PubSub
- HTTP
- .NET
- Flash
- FlashSockets
- SPML / SECP
- HTTP Tunneling
- Security
- Cross-Platform
- Monitoring
StreamHub (no longer available)
SuperWebSocket, a .NET WebSocket server
- WebSockets,
- .NET
Thunder Push
Thunderpush is a Tornado and SockJS based push service. It provides a Beaconpush (beaconpush.com) inspired HTTP API and client.
- SockJS
- Python
Tornado
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.
Represents a core building block of many other realtime web servers.
UnderTow
An asynchronous WebSocket and HTTP server in Java
- WebSockets
- Server Sent Events
- Java
webbit
An event-based WebSocket and HTTP server in Java
- Java
WebSockets and Joomla
- PHP
- WebSockets
- Joomla
ws4py
- Python
- WebSockets
- Server
- Client
XSockets (no longer available)
- WebSockets
- .NET
- Fallback-support
YAWS (Yet Another Web Server)
- WebSockets
- HTTP Long-Polling
- HTTP Streaming
- Erlang
WebSocket Client Libraries
JavaScript - Flash Socket Fallback
ActionScript
.NET
- Microsoft .NET WebSockets namespace and classes
- Microsoft Windows app MessageWebSocket class
- WebSocket Sharp
- WebSocket4Net - originated from the SuperWebSocket codebase
Silverlight
Java
C++
Ruby
Python
Objective-C
- ZTWebSocket
- SocketRocket - Objective-C WebSocket Client (beta)

