У меня есть клиент-серверная система, написанная мной обе стороны, и я хотел бы поставить клиентов в состояние "офлайн", когда сервер отключается/умирает, а затем автоматически возвращает их "онлайн", когда сервер снова доступен.
В первой части я слушаю события с ошибками канала и обрабатываю их, установив клиент в автономный режим. Затем я запускаю вызов службы "ping" на сервере (каждые 30 секунд), который возвращает bool, если он жив. Как только он жив, клиент получает bool и переключается обратно в Интернете.
Все это работает, проблема заключается в том, что когда клиент вызывает службу ping, а сервер не работает, ответ не отправляется (очевидно), и в итоге после примерно 2 минут я получаю исключение, не найденное в конечной точке. К этому времени я уже пробовал еще 3-4 пинга и, следовательно, имел 3-4 исключения.
Мой вопрос: как я могу более эффективно обрабатывать пинг-сервис? В идеале я хотел бы периодически называть услугу, которая позволяет мне знать, если она в сети, и мгновенно позволяет мне знать, если это не так.
Спасибо, Будет ли