class Faye::WebSocket::HybiParser
def parse(data)
def parse(data) @reader.put(data.bytes.to_a) buffer = true while buffer case @stage when 0 then buffer = @reader.read(1) parse_opcode(buffer[0]) if buffer when 1 then buffer = @reader.read(1) parse_length(buffer[0]) if buffer when 2 then buffer = @reader.read(@length_size) parse_extended_length(buffer) if buffer when 3 then buffer = @reader.read(4) if buffer @mask = buffer @stage = 4 end when 4 then buffer = @reader.read(@length) if buffer @payload = buffer emit_frame @stage = 0 end end end nil end