Method: Smpp::Base#receive_data
- Defined in:
- lib/smpp/base.rb
#receive_data(data) ⇒ Object
EventMachine::Connection#receive_data
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/smpp/base.rb', line 92 def receive_data(data) #append data to buffer @data << data while (@data.length >=4) cmd_length = @data[0..3].unpack('N').first if(@data.length < cmd_length) #not complete packet ... break break end pkt = @data.slice!(0,cmd_length) begin # parse incoming PDU pdu = read_pdu(pkt) # let subclass process it process_pdu(pdu) if pdu rescue Exception => e logger.error "Error receiving data: #{e}\n#{e.backtrace.join("\n")}" if @delegate.respond_to?(:data_error) @delegate.data_error(e) end end end end |