Class: Terminus::Connector::Server
- Inherits:
-
Object
- Object
- Terminus::Connector::Server
- Defined in:
- lib/terminus/connector/server.rb
Constant Summary collapse
- RECV_SIZE =
1024
- BIND_TIMEOUT =
5
Instance Method Summary collapse
- #connected? ⇒ Boolean
- #drain_socket ⇒ Object
-
#initialize(browser, timeout = BIND_TIMEOUT) ⇒ Server
constructor
A new instance of Server.
- #port ⇒ Object
- #request(message) ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(browser, timeout = BIND_TIMEOUT) ⇒ Server
Returns a new instance of Server.
31 32 33 34 35 36 37 |
# File 'lib/terminus/connector/server.rb', line 31 def initialize(browser, timeout = BIND_TIMEOUT) @browser = browser @skips = 0 @server = start_server @timeout = timeout reset end |
Instance Method Details
#connected? ⇒ Boolean
47 48 49 |
# File 'lib/terminus/connector/server.rb', line 47 def connected? not @socket.nil? end |
#drain_socket ⇒ Object
69 70 71 |
# File 'lib/terminus/connector/server.rb', line 69 def drain_socket @closing = true if @socket end |
#port ⇒ Object
51 52 53 |
# File 'lib/terminus/connector/server.rb', line 51 def port @server.addr[1] end |
#request(message) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/terminus/connector/server.rb', line 55 def request() @browser.debug(:send, @browser.id, ) accept unless connected? @socket.write(@handler.encode()) true while @closing && receive result = receive @browser.debug(:recv, @browser.id, result) reset if result.nil? result rescue Errno::ECONNRESET, Errno::EPIPE, Errno::EWOULDBLOCK reset nil end |
#reset ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/terminus/connector/server.rb', line 39 def reset @closing = false @env = nil @handler = nil @parser = Http::Parser.new @socket = nil end |