like in openttd game:
network masterserver announce:
if announce enabled in config (disabled by default)
server send to masterserver[s] on start and every 60-600s (on info change, or every max interval):
string hostname, //optional, if no - use senders ip
int port, //optional, if no = 30000
string version,
bool password protected,
int n of clients,
int server uptime, //seconds
int changed blocks,
string url homepage,
string url map
...?
maybe array of client names..
...?
via curl POST to masterserver/add , in json format
{"hostname":"mine.test.com", "version":"0.4.4", "password":"1", "clients":42, "uptime":1234}
masterserver:
recieve anonuces,
make static result list with servers reported last 1200 seconds
or generate by request
format: json like
[
{"ip":"1.2.3.4", "hostname":"mine.test.com", "version":"0.4.4", "password":1, "clients":42, "uptime":1234},
{"ip":"1.2.3.5", "hostname":"mine2.test.com", "version":"0.4.4", "password":0, "clients":43, "uptime":1234},
...
]
ip is message sender ip
client:
receive json from masterserver/list , parse, show in table
future:
clients ask servers about fresh info