'Called when the other end of the low-level stream
is half-closed.
If this returns a false value (including None), the transport
will close itself.  If it returns a true value, closing the
transport is up to the protocol.'

def eof_received(self):

    try:
        if self._loop.get_debug():
            logger.debug('%r    received    EOF', self)
        self._wakeup_waiter(ConnectionResetError)
        if (not self._in_handshake):
            keep_open = self._app_protocol.eof_received()
            if keep_open:
                logger.warning('returning    true    from    eof_received()    has    no    effect    when    using    ssl')
    finally:
        self._transport.close()
