Last updated: 2021-02-21, tested with socket.io v3.1.1
This is the simplest implementation you will find for a client/server WebSockets architecture using socket.io.
To see a full explanation, read my answer on SO here: https://stackoverflow.com/a/24232050/778272.
If you're looking for examples using frameworks, check these links:
Create a folder, run npm init -f
on it and paste both server.js
and client.js
there (see files below). Needless to say, you must have Node.js installed on your system.
Install the required libraries:
npm install socket.io@3.1.1
npm install socket.io-client@3.1.1
Run the server:
node server
Open other terminal windows and spawn as many clients as you want by running:
node client
I would like to mention that the room is also useful when you have one user connected from multiple devices, in your example, you have to do more tweaks in this situation. Moreover, the room will delete users as soon as they disconnect, so you don't have to track their status.