class Playwright::WebSocketTransport
def async_run
- Note: - This method blocks until playwright-cli exited. Consider using Thread or Future.
def async_run ws = WebSocketClient.new( url: @ws_endpoint, max_payload_size: 256 * 1024 * 1024, # 256MB ) promise = Concurrent::Promises.resolvable_future ws.on_open do promise.fulfill(ws) end ws.on_error do |error_message| promise.reject(WebSocketClient::TransportError.new(error_message)) end # Some messages can be sent just after start, before setting @ws.on_message # So set this handler before ws.start. ws.on_message do |data| handle_on_message(data) end ws.start @ws = promise.value! @ws.on_error do |error| puts "[WebSocketTransport] error: #{error}" @on_driver_crashed&.call end rescue Errno::ECONNREFUSED => err raise WebSocketClient::TransportError.new(err) end