Как вы получаете уведомление, когда клиент теряет подключение к интернету? - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь запрограммировать небольшое приложение для чата с Flutter и Python. Сервер написан с помощью asyncio на Python:

    loop = asyncio.get_event_loop()
    servlet = loop.create_server(SocketConnection, port=socket_port, ssl=sc)
    server = loop.run_until_complete(servlet)
    loop.run_forever()

Класс SocketConnection выглядит следующим образом:

class SocketConnection(asyncio.Protocol):

    [...]

    # Send a Failure Message
    def action_failed(self, message):
        print("action_failed")
        pass

    # Defines what happens when a new Connection is made
    def connection_made(self, transport):
       print("new connection")

    # Defines what happens if data is received from the Client
    def data_received(self, data):
        print("received data")

    # Defines what happens when the Connection to the Client is lost
    def connection_lost(self, ex):
        print("connection lost!")

    # Disconnect the Client on Purpose
    def disconnect(self):
        print("disconnected")

Приложение Flutter подключается к серверу и может передавать данные. Если я закрываю приложение, вызывается метод disconnect внутри класса SocketConnection, так что этот случай прост в обращении.

Теперь я хочу убедиться, что сервер также замечает, когда подключенный клиент теряет свое интернет-соединение. Я ожидал, что в этом случае вызывается функция connection_lost, но я не вижу никаких отпечатков внутри терминала.

Заранее благодарю за помощь!

...