Мы только начали использовать New Relic Mobile для нашего приложения для iOS и наблюдаем периодические всплески сетевых ошибок. В списке ошибок есть несколько понятных (отсутствие подключения к Интернету, тайм-аут, потеря связи). Прямо сейчас я списываю это на производительность мобильного интернета сетевых операторов (или ее отсутствие). Тот, который в списке сложнее объяснить, - это не удается найти хоста. Может ли устройство столкнуться с этой ошибкой, если интернет-сервис ненадежен? Во время этих всплесков на нашем веб-сайте для настольных компьютеров (на тех же серверах) не возникают такие же ошибки. В общем, мне интересно, насколько надежны данные об ошибках сети с мобильных устройств, если они подключены к менее надежному соединению.
Вероятно, что ненадежное сетевое соединение может привести к тому, что приложение отправит отчет cannot find host
.
Типичное сетевое взаимодействие начинается с того, что приложение выполняет поиск в DNS. Если устройство считает, что сетевое соединение установлено, но пакеты на самом деле не проходят, приложение не получит никакого ответа на первый поиск DNS.
Правильная реакция приложения - это попытка несколько раз, а затем тайм-аут с сообщением об ошибке. На этом этапе существует несколько возможных состояний ошибки, которые могут привести к появлению одного и того же сообщения об ошибке для всех условий. Эти условия таковы:
Если бы вам пришлось выбрать одно сообщение об ошибке, охватывающее все вышеперечисленное, трудно придумать что-то более наглядное, чем cannot find host
.
Важно помнить, что если устройство ранее выполнило поиск DNS, результат может быть кэширован, и в этом случае вы, вероятно, увидите другую ошибку.
Если у вас есть доступ к устройству, идентично тому, которое выдает сообщение об ошибке, вы можете проверить каждое из вышеуказанных условий в сети под вашим собственным контролем, чтобы увидеть, какое сообщение об ошибке выдается.