class Playwright::WebSocketClient
Constants
- STATE_CLOSED
- STATE_CLOSING
- STATE_CONNECTING
- STATE_OPENED
Public Class Methods
new(url:, max_payload_size:)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 65 def initialize(url:, max_payload_size:) @impl = DriverImpl.new(url) @driver = ::WebSocket::Driver.client(@impl, max_length: max_payload_size) setup end
Public Instance Methods
close(code: 1000, reason: "")
click to toggle source
# File lib/playwright/web_socket_client.rb, line 118 def close(code: 1000, reason: "") return if @ready_state >= STATE_CLOSING @ready_state = STATE_CLOSING @driver.close(reason, code) end
on_close(&block)
click to toggle source
@param block [Proc(reason: String, code: Numeric)]
# File lib/playwright/web_socket_client.rb, line 129 def on_close(&block) @on_close = block end
on_error(&block)
click to toggle source
@param block [Proc(error_message: String)]
# File lib/playwright/web_socket_client.rb, line 134 def on_error(&block) @on_error = block end
on_message(&block)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 138 def on_message(&block) @on_message = block end
on_open(&block)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 124 def on_open(&block) @on_open = block end
send_text(message)
click to toggle source
@param message [String]
# File lib/playwright/web_socket_client.rb, line 113 def send_text(message) return if @ready_state >= STATE_CLOSING @driver.text(message) end
start()
click to toggle source
# File lib/playwright/web_socket_client.rb, line 98 def start @driver.start Thread.new do wait_for_data until @ready_state >= STATE_CLOSING rescue EOFError # Google Chrome was gone. # We have nothing todo. Just finish polling. if @ready_state < STATE_CLOSING handle_on_close(reason: 'Going Away', code: 1001) end end end
Private Instance Methods
handle_on_close(reason:, code:)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 146 def handle_on_close(reason:, code:) @on_close&.call(reason, code) @impl.disconnect end
handle_on_error(error_message:)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 151 def handle_on_error(error_message:) return false if @on_error.nil? @on_error.call(error_message) true end
handle_on_message(data)
click to toggle source
# File lib/playwright/web_socket_client.rb, line 158 def handle_on_message(data) return if @ready_state != STATE_OPENED @on_message&.call(data) end
handle_on_open()
click to toggle source
# File lib/playwright/web_socket_client.rb, line 142 def handle_on_open @on_open&.call end
setup()
click to toggle source
# File lib/playwright/web_socket_client.rb, line 74 def setup @ready_state = STATE_CONNECTING @driver.on(:open) do @ready_state = STATE_OPENED handle_on_open end @driver.on(:close) do |event| @ready_state = STATE_CLOSED handle_on_close(reason: event.reason, code: event.code) end @driver.on(:error) do |event| if !handle_on_error(error_message: event.message) raise TransportError.new(event.message) end end @driver.on(:message) do |event| handle_on_message(event.data) end end
wait_for_data()
click to toggle source
# File lib/playwright/web_socket_client.rb, line 94 def wait_for_data @driver.parse(@impl.readpartial) end