Building a multiplayer game on the web that will be able to handle thousands of players at once, separated into independent lobbies/sessions. There may be 20 players in one lobby, 10 in another, 30 in another, etc.
I'm using NodeJS, Express, and Socket.io, but I'm not sure on a few things. I assume my entire application will run on a single NodeJS server, but that each game lobby will have spawn their own express server and or their own socket.io server.
Alternatively, they may all share the same central single express server, but that express server will produce independent socket.io servers for them (if even possible)
The least likely scenario to me would be to have only one socket.io server for all lobbies as well, and divy them up using socket.io's "rooms" feature. That seems incorrect given that rooms are a server-side only concern, all client's' would emit to the same server likely impacting performance.
To formalize my uncertainty into four questions: