mirror of
https://github.com/socketio/socket.io.git
synced 2026-01-09 06:58:02 -05:00
Example with @socket.io/cluster-engine and Redis
How to use
# start the redis server
$ docker compose up -d
# run the server
$ node server.js
# run the client
$ node client.js
Explanation
The server.js script will create 3 Socket.IO servers, each listening on a distinct port (3001, 3002 and 3003), and a proxy server listening on port 3000 which randomly redirects to one of those servers.
With the default engine (provided by the engine.io package), sticky sessions would be required, so that each HTTP request of the same Engine.IO session reaches the same server.
The RedisEngine is a custom engine which takes care of the synchronization between the servers by using Redis pub/sub and removes the need for sticky sessions when scaling horizontally.