Method: EventMachine::Protocols::FrameObjectProtocol#receive_data

Defined in:
lib/em/protocols/frame_object_protocol.rb

#receive_data(data) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/em/protocols/frame_object_protocol.rb', line 36

def receive_data data
  p data

  begin
    if data.size < 4
      raise "Received invalid datagram, datagram way too small"
    end

    size=data.unpack('N').first

    if data.size != 4+size
      actual_size = data.size-4
      raise "Received invalid datagram: expected size=#{size}, actual size=#{actual_size}"
    end

    obj = serializer.load data[4..-1]
  rescue => e
    handle_exception(data, e)
    return
  end

  p obj
  receive_object obj
end