Сведения о вопросе

Mathprofi

17:34, 10th August, 2020

Теги

sockets   networking   offline    

Повторное подключение логики с уведомлениями о подключении

Просмотров: 369   Ответов: 1

Скажем, у меня есть приложение, которое хочет постоянное соединение с сервером. Как реализовать логику connection/re-connection, чтобы я не тратил ресурсы (power/bandwidth), и у меня есть быстрое время повторного подключения при подключении appears/improves? если я использую только уведомления о подключении, я могу застрять на проблемах, не связанных с локальной сетью.

Бонус, если бы вы могли показать мне версию C# .



  Сведения об ответе

davran

12:49, 3rd August, 2020

Это очень важный вопрос. Я могу сказать, что мы используем o / R Mapper и каждый "query" для базы данных нуждается в объекте с именем PersistenceBroker. Этот класс отвечает за все БД вещи, связанные с подключением, аутентификацией и т.д.

Мы написали PersistenceBrokerFactory.GetCurrentBroker(), который возвращает "working" брокера. Если DB внезапно терпит неудачу (по какой-либо причине), объект CONN будет "timeout()" через 30 секунд (или независимо от того, что вы определяете). Если это произойдет, мы покажем пользователю, что он находится в автономном режиме и отобразим кнопку повторного подключения.

С другой стороны, чтобы обеспечить визуальное указание на то, что у пользователя есть подключение, у нас есть поток, работающий в фоновом режиме, который проверяет подключение к интернету каждые 15 секунд. Мы делаем 1 пинг до google.com. ;) Если это не удается, мы предполагаем, что Интернет каким-то образом сломан, и мы обновляем строку состояния.

Я могу показать вам весь этот код для монитора работоспособности сети, Если вы хотите. Я взял несколько бит из google, а другие я сделал сам :)


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться