Скажем, у меня есть приложение, которому требуется постоянное соединение с сервером. Как реализовать логику подключения / повторного подключения, чтобы я не тратил ресурсы (мощность / пропускная способность) и имел быстрое время повторного подключения при появлении / улучшении подключения? Если я использую только уведомления о подключении, я могу застрять на проблемах, не связанных с локальной сетью.
Бонус, если вы можете показать мне версию C#.
Взаимодействие с другими людьми





Это очень «огромный» вопрос. Я могу сказать, что мы используем O / R Mapper, и каждый «запрос» к базе данных требует объекта с именем PersistenceBroker. Этот класс отвечает за все вещи БД, связанные с подключением, аутентификацией и т. д.
Мы написали PersistenceBrokerFactory.GetCurrentBroker (), который возвращает «рабочий» брокер. Если БД внезапно выйдет из строя (по какой-либо причине), объект CONN выполнит «timeout ()» через 30 секунд (или как вы определили). Если это произойдет, мы покажем пользователю, что он / она не в сети, и отобразим кнопку повторного подключения.
С другой стороны, чтобы обеспечить визуальную индикацию того, что у пользователя есть подключение, у нас есть поток, работающий в фоновом режиме, который проверяет подключение к Интернету каждые 15 секунд. Делаем 1 пинг на google.com. ;) Если это не удается, мы предполагаем, что Интернет каким-то образом не работает, и обновляем строку состояния.
Я мог бы показать вам весь этот код для монитора работоспособности сети, если хотите. Некоторые биты я взял из Google, а другие сделал сам :)