code: def _next_method(self):
          
          while self.queue.empty():
              try:
                  frame_type, channel, payload = self.source.read_frame()
              except Exception, e:
                  #
                  # Connection was closed?  Framing Error?
                  #
                  self.queue.put(e)
                  break
  
              if self.expected_types[channel] != frame_type:
                  self.queue.put((
                      channel,
                      Exception('Received frame type %s while expecting type: %s' %
                          (frame_type, self.expected_types[channel])
                          )
                      ))
              elif frame_type == 1:
                  self._process_method_frame(channel, payload)
              elif frame_type == 2:
                  self._process_content_header(channel, payload)
              elif frame_type == 3:
                  self._process_content_body(channel, payload)
docs: Read the next method from the source, once one complete method has
          been assembled it is placed in the internal queue.