4 ms·
Why is every player connection getting a dedicated port? Are the clients connecting directly to their Redis instance? In every CRUD app I’ve seen, access to the
by 10000truths 5y ago
Why is every player connection getting a dedicated port? Are the clients connecting directly to their Redis instance? In every CRUD app I’ve seen, access to the data store is done by a public facing intermediary that listens on one port.
- Thaxll 5y agoI'm not sure but there is def a big design flaw. They most likely have a single persistant connection for pub/sub to Redis per player.
- Const-me 5y ago> Why is every player connection getting a dedicated port? They probably using TCP transport protocol, or something similar. A better way would be a custom UDP-based protocol. With UDP, with enough resources on the server they could have supported millions of concurrent users connected to a single server. I don’t have recent experience with such things but at the first sight UDT and QUIC protocols look OK. > In every CRUD app I’ve seen, access to the data store is done by a public facing intermediary that listens on one port. I agree, but their application ain’t a CRUD app. It’s a competitive videogame. Game developers are often cutting corners to save development and infrastructure costs. And for another reason too, to minimize network latency. While 10G/100G Ethernet is very fast in modern data centers, every network hop still adds twice the latency. CRUD apps don’t care too much as long as it’s smaller than 50-100ms. For a game you’d want as fast as possible, ideally under 16.6ms roundtrip (one video frame on a 60Hz display).