Open GoogleCodeExporter opened 9 years ago
[deleted comment]
Well, we could probably get it directly from the master server, without using
http
Original comment by corteocarl
on 6 Sep 2014 at 11:37
Can we also get players and bot count ?
Original comment by amginea4...@gmail.com
on 7 Sep 2014 at 12:26
We can get player count in bitfgihterStatus.json, but I am pretty sure we can
get everything via Master Server
Original comment by corteocarl
on 7 Sep 2014 at 1:03
I'll be honest and say I don't fully understand the ping timeout issue; I
suspect it has to do with the server rejecting packets from unknown clients.
When you join a server, the master server arranges the connection such that it
appears to be coming from a known server, and I think the pings the clients
send in the lobby do not use the arranged connection method. I suspect making
them do so would fix the issue, but I'm not really sure.
Also, I'm not sure how to set up a local client for testing that can reproduce
the problem. Any ideas on that front would be helpful in diagnosing and fixing
this highly annoying problem.
Original comment by watusim...@bitfighter.org
on 24 Dec 2014 at 5:17
The process on the UIQueryServers screen is like this:
1. Client connects to master
2. Master sends a list of server addresses
3. Client asks each server for server info
The problem is that if a particular server is behind a firewall or NAT server,
the client cannot form a direct connection to get the server info.
When you connect to a ping-timed out server, the client, server, and master do
what's called 'UDP hole punching' to attempt to trick the NAT or firewall to
allow packets from the specific client (this is an 'arranged connection'). It
does not do this for the normal server info query because it is expensive (in
time) to set up.
The easy way to test this is to set up a dedicated server on a server with all
ports blocked.
A solution could be to get the server names from the master server instead of
just the addresses to try connections. I would recommended leaving the '999'
for ping, though, as that is a clear indicator that the server has its ports
blocked.
Original comment by buckyballreaction
on 24 Dec 2014 at 3:57
I think it might be worthwhile to do an arranged connection for servers that
are "ServerTimedOut" because it would be useful for potential clients to know
if they will ultimately be able to connect or not. We could possibly try a
direct connection first, then do an arranged connection if that fails.
Original comment by watusim...@bitfighter.org
on 25 Dec 2014 at 8:53
Original issue reported on code.google.com by
corteocarl
on 6 Sep 2014 at 11:36