code: async def recv_message(self):
          
          message = await recv_message(self._stream, self._codec, self._recv_type)
          message, = await self._dispatch.recv_message(message)
          return message
docs: Coroutine to receive incoming message from the client.
  
          If client sends UNARY request, then you can call this coroutine
          only once. If client sends STREAM request, then you should call this
          coroutine several times, until it returns None. To simplify your code
          in this case, :py:class:`Stream` class implements async iteration
          protocol, so you can use it like this:
  
          .. code-block:: python3
  
              async for massage in stream:
                  do_smth_with(message)
  
          or even like this:
  
          .. code-block:: python3
  
              messages = [msg async for msg in stream]
  
          HTTP/2 has flow control mechanism, so server will acknowledge received
          DATA frames as a message only after user consumes this coroutine.
  
          :returns: message