Build status

ScaleSocket is a collaborative websocket server and autoscaler. It's a simple way to build multiplayer backends.

High level architecture diagram on ScaleSocket usage


ScaleSocket is a command line tool that lets you to wrap a script or binary, and serve it collaboratively over websockets. Clients then connect to rooms (a.k.a. channels) which have a unique URL (wss:// Connecting to a room spawns a new process of the wrapped binary. Subsequent connections to the same room share the process.


For full details and installation instructions, see the documentation.


  • Share a backend process between websocket clients

  • Proxy websocket traffic to normal TCP socket or stdio

  • Route server messages to specific clients

  • Serve static files

  • Expose CGI environment variables to backend process

  • OpenMetrics compatible

  • Built-in lobby server for listing rooms

Quick Start

Create the file with the follow content:

echo '{"message": "hello world"}'
sleep 1
echo '{"message": "goodbye"}'
sleep 1

Make it executable:

$ chmod u+x

Wrap it by starting the ScaleSocket server:

$ scalesocket ./

Then connect to the websocket endpoint, for example using curl:

$ curl --include \
       --no-buffer \
       --http1.1 \
       --header "Connection: Upgrade" \
       --header "Upgrade: websocket" \
       --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
       --header "Sec-WebSocket-Version: 13" \
�{"message": "hello world"}�{"message": "goodbye"}%

For more advanced usage and features, see usage.



Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

Was this page helpful?