Hello! I developed chesslive.com (now offline, dead). I don't do it with Delphi, it was plain javascript but the system was:
- backend with websockets. I think that you could search something about this tech with Delphi. Pub-Sub model, with websockets. It was really fast, playing thousands of simultaneous games (yeah, blitz! people like blitz).
- client was vanilla javascript, but use websockets to talk with the servers.
- The scheme was something like: player1: subscribe to the chanel with id (myGameId) server:ok create the channel player2: subscribe, player1: move, server: transmite the move to player2, player2: do the move and make my move, send to server... and so on. Is really easy.
I hope that this info help you as one possible solution, at least, it is a real case! 🙂 🙂 🙂
You could read: https://blogs.embarcadero.com/websockets-harness-real-time-power-in-your-delphi-apps/