INNER CODE UNIT · Ruby

receive_packet

royshil/obs-backgroundremoval · scripts/ws_client.rb:47

  def receive_packet
    h = @socket.read(2)
    return nil if h.nil?

    opcode, masked = h.bytes[0] & 0x0F, (h.bytes[1] & 0x80) != 0
    payload_len = case h.bytes[1] & 0x7F
    when 126; @socket.read(2).unpack1('n')
    when 127; @socket.read(8).unpack1('Q>')
    else; h.bytes[1] & 0x7F
    end
    raise "Connection closed by OBS (Opcode 8)" if opcode == 8

    @socket.read(4) if masked

    @socket.read(payload_len)
  end

  def send_request(type, id, data = {})

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…