I can understand the concept of sending moves with ajax. However, I'm curious about how a game session initiates. How does one player extend an offer to play to another player? And once the second player agrees, how is the offer received by the first player? I am aware of WebSockets for facilitating data pushing. But I wonder how games managed this process before the introduction of WebSockets.