Несколько CoAP-серверов в небольшой закрытой сети
Я хочу знать, что произошло и как реализовать решения в реальном сценарии. Когда у нас есть закрытая сеть (без шлюза из 6lowpan в сеть ipv4), когда у нас есть один сервер CoAP, и клиенты узлов находятся в этой сети. Какая правильная процедура для сети и передачи данных между датчиками и исполнительными механизмами работает, когда сервер CoAP отсутствует?
Могу ли я внедрить в сеть несколько серверов CoAP, которые меняют свою роль в качестве активного сервера, а другое устройство принимает на себя активность сервера, когда старое неактивно? И при настройке нового сервера будет ли отправляться широковещательный пакет UDP на все устройства в сети: "Я - новый сервер, мой IP - xxxx".
1 ответ
Активных объявлений нет, но обычно используемая процедура (например, в проекте справочника ресурсов) выглядит следующим образом; при условии, что сервис, который вы хотите открыть, мы позвоним my-service
и что серверы реализуют это на своем пути /s
, (Обнаружение пути предоставляется бесплатно при обнаружении сервера, и есть).
- Клиент, который приходит, отправляет многоадресный GET по пути и запрашивает /.well-known/core?rt=my-service
- Каждый сервер (или отдельный сервер) отвечает с ответом в формате ссылки а-ля
</s>;rt=my-service
со своего собственного IP-адреса. Если несколько серверов отвечают, клиент выбирает любой. - Клиенты используют этот адрес и путь, чтобы делать все, что они делают. Если это перестает работать, клиент снова запускает процесс обнаружения.
Если вы когда-нибудь захотите иметь только один активный сервер (приведенное выше даст вам бесплатную балансировку нагрузки), серверы смогут договориться об этом между собой, но у них, вероятно, уже будет некоторый способ синхронизации.