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 = {})