lib/em-websocket/framing03.rb in em-websocket-0.2.0 vs lib/em-websocket/framing03.rb in em-websocket-0.2.1

- old
+ new

@@ -1,33 +1,35 @@ +# encoding: BINARY + module EventMachine module WebSocket module Framing03 def initialize_framing @data = '' @application_data_buffer = '' # Used for MORE frames end - def process_data + def process_data(newdata) error = false while !error && @data.size > 1 pointer = 0 - more = (@data[pointer] & 0b10000000) == 0b10000000 + more = (@data.getbyte(pointer) & 0b10000000) == 0b10000000 # Ignoring rsv1-3 for now - opcode = @data[0] & 0b00001111 + opcode = @data.getbyte(0) & 0b00001111 pointer += 1 # Ignoring rsv4 - length = @data[pointer] & 0b01111111 + length = @data.getbyte(pointer) & 0b01111111 pointer += 1 payload_length = case length when 127 # Length defined by 8 bytes # Check buffer size - if @data[pointer+8-1] == nil + if @data.getbyte(pointer+8-1) == nil debug [:buffer_incomplete, @data.inspect] error = true next end @@ -36,11 +38,11 @@ l = @data[(pointer+4)..(pointer+7)].unpack('N').first pointer += 8 l when 126 # Length defined by 2 bytes # Check buffer size - if @data[pointer+2-1] == nil + if @data.getbyte(pointer+2-1) == nil debug [:buffer_incomplete, @data.inspect] error = true next end @@ -50,10 +52,10 @@ else length end # Check buffer size - if @data[pointer+payload_length-1] == nil + if @data.getbyte(pointer+payload_length-1) == nil debug [:buffer_incomplete, @data.inspect] error = true next end