Class: Q3Servers::ServerConnection
- Inherits:
-
Object
- Object
- Q3Servers::ServerConnection
- Defined in:
- lib/q3_servers/server_connection.rb
Constant Summary collapse
- MAX_LENGTH =
65_536
Instance Attribute Summary collapse
-
#ip ⇒ Object
Returns the value of attribute ip.
-
#port ⇒ Object
Returns the value of attribute port.
-
#socket ⇒ Object
Returns the value of attribute socket.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
-
#url_maps ⇒ Object
Returns the value of attribute url_maps.
Instance Method Summary collapse
- #connect ⇒ Object
-
#initialize(ip, port, timeout = 1) ⇒ ServerConnection
constructor
A new instance of ServerConnection.
-
#read_info_server ⇒ Object
INFO 1/2.
-
#read_status_server ⇒ Object
INFO 2/2.
-
#request_and_get_server_status ⇒ Object
INFO 2/2.
- #request_info_server ⇒ Object
- #request_status_server ⇒ Object
- #server_info_connect ⇒ Object
- #to_s ⇒ Object
- #unique_index ⇒ Object
Constructor Details
#initialize(ip, port, timeout = 1) ⇒ ServerConnection
Returns a new instance of ServerConnection.
10 11 12 13 14 15 |
# File 'lib/q3_servers/server_connection.rb', line 10 def initialize(ip, port, timeout = 1) @ip = ip @port = port @timeout = timeout @url_maps = 'https://www.urbanterror.info/files/static/images/levels/wide/' end |
Instance Attribute Details
#ip ⇒ Object
Returns the value of attribute ip.
6 7 8 |
# File 'lib/q3_servers/server_connection.rb', line 6 def ip @ip end |
#port ⇒ Object
Returns the value of attribute port.
6 7 8 |
# File 'lib/q3_servers/server_connection.rb', line 6 def port @port end |
#socket ⇒ Object
Returns the value of attribute socket.
6 7 8 |
# File 'lib/q3_servers/server_connection.rb', line 6 def socket @socket end |
#timeout ⇒ Object
Returns the value of attribute timeout.
6 7 8 |
# File 'lib/q3_servers/server_connection.rb', line 6 def timeout @timeout end |
#url_maps ⇒ Object
Returns the value of attribute url_maps.
6 7 8 |
# File 'lib/q3_servers/server_connection.rb', line 6 def url_maps @url_maps end |
Instance Method Details
#connect ⇒ Object
30 31 32 33 34 35 |
# File 'lib/q3_servers/server_connection.rb', line 30 def connect @socket&.close @socket = UDPSocket.new @socket.connect(ip, port) @socket end |
#read_info_server ⇒ Object
INFO 1/2
43 44 45 46 |
# File 'lib/q3_servers/server_connection.rb', line 43 def read_info_server sv_info = read_data sv_info ? parse_sv_info(sv_info) : {} # parse step 1 info end |
#read_status_server ⇒ Object
INFO 2/2
61 62 63 64 |
# File 'lib/q3_servers/server_connection.rb', line 61 def read_status_server sv_status = read_data sv_status ? parse_sv_status(sv_status) : {} # parse step 2 end |
#request_and_get_server_status ⇒ Object
INFO 2/2
49 50 51 52 53 54 |
# File 'lib/q3_servers/server_connection.rb', line 49 def request_and_get_server_status # sv_status = send_and_read(prepend_oob_data + 'getstatus') # sv_status ? parse_sv_status(sv_status) : {} # parse step 2 request_status_server read_status_server end |
#request_info_server ⇒ Object
37 38 39 40 |
# File 'lib/q3_servers/server_connection.rb', line 37 def request_info_server connect send_data("#{prepend_oob_data}getinfo xxx") # request step 1 end |
#request_status_server ⇒ Object
56 57 58 |
# File 'lib/q3_servers/server_connection.rb', line 56 def request_status_server send_data("#{prepend_oob_data}getstatus") # request step 2 end |
#server_info_connect ⇒ Object
25 26 27 28 |
# File 'lib/q3_servers/server_connection.rb', line 25 def server_info_connect request_info_server read_info_server end |
#to_s ⇒ Object
17 18 19 |
# File 'lib/q3_servers/server_connection.rb', line 17 def to_s "#{ip}:#{port}" end |
#unique_index ⇒ Object
21 22 23 |
# File 'lib/q3_servers/server_connection.rb', line 21 def unique_index Digest::MD5.hexdigest("#{ip}:#{port}") end |