Как правильно подключить приложение к устройству?На данный момент у меня есть Raspberry Pi 3, который управляет электричеством, и приложение для iPhone, которое я создал.Каждый раз, когда приложение выходит на передний план, оно отправляет широковещательное UDP-сообщение, когда приложение получает ответ от raspberry pi, оно использует этот IP-адрес (в заголовке IP) для использования веб-сервисов, созданных мной в хабе.Этот процесс UDP выполняется все время, пока вы запускаете приложение.Это то, что обычно делают устройства IOT?Я предполагаю, что IP-адрес raspberry pi рано или поздно изменится.
Мой коллега сказал мне по-другому: после того, как я впервые получаю IP-адрес, вместо использования широковещательных сообщений UDP при каждом запуске приложения, используйтеICMP пингует ранее сохраненный IP-адрес, чтобы узнать, отвечает ли он.В этом случае я использую веб-службы с этим IP-адресом, в противном случае снова использую широковещательное сообщение UPD.
Я не вижу в этом смысла.В основном потому, что система не быстрее, используя ICMP.(UDP-запрос более или менее быстр, чем ICMP-запрос).Более того, может быть, другое устройство уже начало использовать этот IP-адрес (например, Smart TV или Smart Plug) и по этой причине оно не будет отвечать на сетевые запросы, отправленные приложением.В этом случае приложение не может восстановиться, так как считает, что оно уже подключено к соответствующему устройству.Насколько я понимаю, ICMP - это протокол, используемый для диагностики, а не для обнаружения устройств.
Как вы думаете?Какой процесс используют такие устройства, как Alexa, Philips Hue, Smart pluggs ... для решения проблемы обнаружения устройств с помощью их приложений?Кажется, Philips HUE использует SSDP, который под капотом использует широковещательное UDP-сообщение.Используется ли он каждый раз, когда вы запускаете приложение, чтобы узнать IP-адрес?(Я собираюсь проверить это позже с wireshark)
Спасибо за предложения.