Class: MockServer::WebSocketClient
- Inherits:
-
Object
- Object
- MockServer::WebSocketClient
- Defined in:
- lib/mockserver/websocket_client.rb
Instance Attribute Summary collapse
-
#client_id ⇒ Object
readonly
Returns the value of attribute client_id.
Instance Method Summary collapse
- #close ⇒ Object
- #connect(host, port, context_path: '', secure: false, ca_cert_path: nil, client_id: nil, tls_verify: true) ⇒ Object
- #connected? ⇒ Boolean
-
#initialize ⇒ WebSocketClient
constructor
A new instance of WebSocketClient.
- #listen ⇒ Object
- #register_forward_callback(forward_fn, response_fn = nil) ⇒ Object
- #register_response_callback(callback_fn) ⇒ Object
Constructor Details
#initialize ⇒ WebSocketClient
Returns a new instance of WebSocketClient.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/mockserver/websocket_client.rb', line 78 def initialize @ws = nil @client_id = nil @response_callback = nil @forward_callback = nil @forward_response_callback = nil @stopped = false @connected = false @listen_thread = nil @host = '' @port = 0 @context_path = '' @secure = false @ca_cert_path = nil @tls_verify = true @logger = Logger.new($stdout) @logger.progname = 'MockServer::WebSocketClient' @logger.level = Logger::WARN @registration_queue = nil end |
Instance Attribute Details
#client_id ⇒ Object (readonly)
Returns the value of attribute client_id.
76 77 78 |
# File 'lib/mockserver/websocket_client.rb', line 76 def client_id @client_id end |
Instance Method Details
#close ⇒ Object
132 133 134 135 136 137 138 139 140 141 |
# File 'lib/mockserver/websocket_client.rb', line 132 def close @stopped = true @connected = false @ws&.close if @ws rescue StandardError # ignore close errors ensure @ws = nil @listen_thread&.join(5) if @listen_thread && @listen_thread != Thread.current end |
#connect(host, port, context_path: '', secure: false, ca_cert_path: nil, client_id: nil, tls_verify: true) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/mockserver/websocket_client.rb', line 103 def connect(host, port, context_path: '', secure: false, ca_cert_path: nil, client_id: nil, tls_verify: true) @host = host @port = port @context_path = context_path @secure = secure @ca_cert_path = ca_cert_path @tls_verify = tls_verify registration_id = client_id || SecureRandom.uuid do_connect(registration_id) @client_id end |
#connected? ⇒ Boolean
99 100 101 |
# File 'lib/mockserver/websocket_client.rb', line 99 def connected? @connected && !@stopped end |
#listen ⇒ Object
127 128 129 130 |
# File 'lib/mockserver/websocket_client.rb', line 127 def listen @listen_thread = Thread.new { listen_loop } @listen_thread.abort_on_exception = false end |
#register_forward_callback(forward_fn, response_fn = nil) ⇒ Object
122 123 124 125 |
# File 'lib/mockserver/websocket_client.rb', line 122 def register_forward_callback(forward_fn, response_fn = nil) @forward_callback = forward_fn @forward_response_callback = response_fn end |
#register_response_callback(callback_fn) ⇒ Object
118 119 120 |
# File 'lib/mockserver/websocket_client.rb', line 118 def register_response_callback(callback_fn) @response_callback = callback_fn end |