Как я могу синхронизировать данные на устройствах Android через локальную сеть, не зная IP-адреса любого устройства?
Люди, использующие мое приложение, могут синхронизировать там android-смартфон с другими участниками локальной сети, используя мое приложение. Все они имеют динамические IP-адреса. Если кто-то вносит изменения, очень важно, чтобы все получили все изменения. Один из участников должен синхронизировать информацию с сервером в интернете (первый). Поэтому очень важно, чтобы другой человек был проинформирован, если новый участник присоединяется, или другой покидает сеть (если первый покидает другую, следует синхронизироваться с Интернетом). Как я могу построить такую сеть? Я уже пробовал jGroups, но у него очень высокое энергопотребление. Другая идея состоит в том, чтобы решить эту проблему с помощью многоадресной IP-рассылки, но не исключено, что все получают данные. Кто-нибудь знает, как построить такую сеть? Есть ли другие инструменты для использования?
1 ответ
Вы можете использовать гибридный многоадресный обмен udp и процесс tcp, где многоадресная передача udp просто говорит, что кто-то присоединился к сети. Затем устройство, получив это сообщение, должно подключиться к серверу по протоколу tcp и выполнить аутентификацию. Сервер будет только сообщать устройству о том, кто присоединился, если они аутентифицированы.