code: def _read_buffer(self, data_in):
          
          while data_in:
              data_in, channel_id, frame_in = self._handle_amqp_frame(data_in)
  
              if frame_in is None:
                  break
  
              self.heartbeat.register_read()
              if channel_id == 0:
                  self._channel0.on_frame(frame_in)
              elif channel_id in self._channels:
                  self._channels[channel_id].on_frame(frame_in)
  
          return data_in
docs: Process the socket buffer, and direct the data to the appropriate
          channel.
  
          :rtype: bytes