Class: MasterServer
- Inherits:
-
Object
- Object
- MasterServer
- Defined in:
- lib/steam/servers/master_server.rb
Constant Summary collapse
- GOLDSRC_MASTER_SERVER =
'hl1master.steampowered.com', 27010
- SOURCE_MASTER_SERVER =
'hl2master.steampowered.com', 27011
- REGION_US_EAST_COAST =
0x00- REGION_US_WEST_COAST =
0x01- REGION_SOUTH_AMERICA =
0x02- REGION_EUROPE =
0x03- REGION_ASIA =
0x04- REGION_AUSTRALIA =
0x05- REGION_MIDDLE_EAST =
0x06- REGION_AFRICA =
0x07- REGION_ALL =
0xFF
Instance Method Summary collapse
-
#initialize(master_server_address, master_server_port) ⇒ MasterServer
constructor
A new instance of MasterServer.
- #servers(region_code = MasterServer::REGION_ALL, filters = '') ⇒ Object
- #update_servers(region_code, filters) ⇒ Object
Constructor Details
#initialize(master_server_address, master_server_port) ⇒ MasterServer
24 25 26 27 |
# File 'lib/steam/servers/master_server.rb', line 24 def initialize(master_server_address, master_server_port) @socket = MasterServerSocket.new master_server_address, master_server_port @server_array = [] end |
Instance Method Details
#servers(region_code = MasterServer::REGION_ALL, filters = '') ⇒ Object
29 30 31 32 |
# File 'lib/steam/servers/master_server.rb', line 29 def servers(region_code = MasterServer::REGION_ALL, filters = '') update_servers region_code, filters if @server_array.empty? @server_array end |
#update_servers(region_code, filters) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/steam/servers/master_server.rb', line 34 def update_servers(region_code, filters) fail_count = 0 finished = false current_server = '0.0.0.0:0' begin @socket.send A2M_GET_SERVERS_BATCH2_Packet.new(region_code, current_server, filters) begin servers = @socket.reply.servers servers.each do |server| if server == '0.0.0.0:0' finished = true else current_server = server @server_array << server.split(':') end end fail_count = 0 rescue TimeoutException raise $! if (fail_count += 1) == 3 end end while !finished end |