I am currently making lots of servers and stuff like that for a game that me and a few friends are working on. For the last few days I've been thinking a lot about how to best implement a partied matchmaking system. Let's assume I follow two paths and consider they're problems:
HTTPS Matchmaking Server
- The first problem with this is the fact that I cant send data to the client without the client first sending a request to me, therefore I see no way for the client to request matchmaking and then receive a response if it took lets say 2 minutes to find them a game.
- Furthermore I need all clients in a single party to talk to me so I can communicate to every single one of them the IP address of the game server that they need to join.
Socket Matchmaking Server
- The problem with this one is the fact that I can only have so many users connected to the matchmaking server at once before it crashes with likely a couple hundred sockets / threads communicating with clients. To overcome this I thought I should disconnect them and figure out some way for them to constantly check and see if they have found a match, be it through a HTTP request to a different web server or something.
- Once again, I need every single player in the party to connect to my matchmaking server so they can receive the IP of the server to join which will somehow be retrieved from a server manager server which controls all game servers.
So far the way I have thought about parties in the aspect of multiplayer is the idea that every single lobby is a party and therefore regardless of the number of members, I can treat all parties the same. Does anybody have a solution to my problem?