Get Server List
Creating The Request
First step is to create the request. You have a few different options, but here's how to create an Internet request.
Filters
You can optionally add filters to avoid showing servers you don't want to show.
// Show only secure servers
Request.AddFilter( "secure", "1" );
// AND with the next 1 rule (if not it'll OR)
Request.AddFilter( "and", "1" );
// Show only servers that are the same version
Request.AddFilter( "gametype", GameVersionString );
Set up a callback
Set up a function to be called when new servers are found. This won't be called for every server, but it might be called every frame.
Request.OnChanges += OnServersUpdated;
Run the request
You can start the request. You don't have to await this function. It takes a timeout, in seconds, where it'll stop updating.
Server Responded
Your callback function will get called when new servers are found.
void OnServersUpdated()
{
// No reponsive servers yet, bail
if ( Request.Responsive.Count == 0 )
return;
// Process each responsive server
foreach ( var s in Request.Responsive )
{
ServerResponded( s );
}
// Clear the responsive server list so we don't
// reprocess them on the next call.
Request.Responsive.Clear();
}
void ServerResponded( ServerInfo server )
{
// Do whatever you want with the server information
Log( $"{server.Name} Responded!" );
}
Cancelling
If you want a Stop button on or a Refresh button, you should stop the request.