async def stop(self):
        """Stop the server and teardown any remaining clients.

        If your subclass overrides this method, make sure to call
        super().stop() to ensure that all devices with open connections from
        thie server are properly closed.

        See :meth:`AbstractDeviceServer.stop`.
        """

        clients = list(self._clients)

        for client in clients:
            self._logger.info("Tearing down client %s at server stop()", client)
            await self.teardown_client(client)
Stop the server and teardown any remaining clients.

        If your subclass overrides this method, make sure to call
        super().stop() to ensure that all devices with open connections from
        thie server are properly closed.

        See :meth:`AbstractDeviceServer.stop`.