Introduction
SocketCluster is a fast, highly scalable HTTP + WebSockets server environment which lets you build multi-process real-time systems (e.g. for pub/sub and RPCs) that make use of all CPU cores on a machine/instance. It removes the limitations of having to run your Node server as a single process and makes your backend resilient by automatically recovering from worker crashes.
SocketCluster is optimized to run on Kubernetes inside Docker containers, see SCC for details.
SocketCluster works like a pub/sub system (which extends all the way to the browser/IoT device) - It only delivers particular events to clients who actually need them. SC is designed to scale both vertically (as a cluster of processes) and horizontally (multiple machines/instances).
SC was designed to be modular so that you can run it with other frameworks such as express. SC's real-time API is similar to that of Socket.io.
Follow the project on Twitter. Subscribe for updates on http://socketcluster.launchrock.com/
This site is open source, contributions on Github are welcome.
For Chat Applications
SC is ideal for building highly flexible, resilient and scalable chat systems. See SocketCluster Design Patterns for Chat and SCC Guide for more details.
For Games
SC is ideal for building multi-player online games. See the Phaser demo. Note that to reduce bandwidth consumption, you may want to use SC with sc-codec-min-bin - This codec will compress SC messages and turn them into binary packets as they get sent over the wire. Alternatively, you may want to write your own codec optimized for your specific game/application.
Memory Leak Profile
SC has been tested for memory leaks. The last full memory profiling was done on v0.9.17 (Node.js v0.10.28) and included checks on worker and broker processes. No memory leaks were detected.