Sha256: c019eac08a2e5bf8cda3b36e64f4a4abdf0dddd496ace03140f0d24259a94679

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

class Puppeteer::WebSocketTransport
  # @param {string} url
  # @return [Puppeteer::WebSocketTransport]
  def self.create(url)
    ws = Puppeteer::WebSocket.new(
      url: url,
      max_payload_size: 256 * 1024 * 1024, # 256MB
    )
    promise = resolvable_future
    ws.on_open do
      promise.fulfill(Puppeteer::WebSocketTransport.new(ws))
    end
    ws.on_error do |error_message|
      promise.reject(Puppeteer::WebSocket::TransportError.new(error_message))
    end
    promise.value!
  end

  # @param {!WebSocket::Driver} web_socket
  def initialize(web_socket)
    @ws = web_socket
    @ws.on_message do |data|
      @on_message&.call(data)
    end
    @ws.on_close do |reason, code|
      @on_close&.call(reason, code)
    end
    @ws.on_error do |error|
      # Silently ignore all errors - we don't know what to do with them.
    end
  end

  # @param message [String]
  def send_text(message)
    @ws.send_text(message)
  end

  def close
    @ws.close
  end

  def on_close(&block)
    @on_close = block
  end

  def on_message(&block)
    @on_message = block
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puppeteer-ruby-0.0.11 lib/puppeteer/web_socket_transport.rb
puppeteer-ruby-0.0.10 lib/puppeteer/web_socket_transport.rb