Pull to refresh

Comments 16

есть один важный момент, с которыми пришлось столкнуться.
jmdns использует мультикаст, но не все андроид устройства его поддерживают.

Пытались также использовать WiFi-direct, но он нормально так и не заработал у нас. Обнаружение устройств работало отлично. А вот если происходило несколько коннектов/дисконнектов то устройства в итоге переставали подключаться друг другу. В итоге перешли на использование jmdns
Нет ли у Вас какой-либо информации о поддержке/неподдержке мультикаста на различных девайсах?
Ну, или хотя бы предполагаемый процент покрытия зоопарка девайсов при использовании мультикаста?

Лично меня на данным момент интересует вопрос определения ip-адреса http-сервера в локальной сетке и посему информация о JmDNS весьма кстати.
Я тестировал этот код на старых устройствах с Android 2.3 и везде все было нормально с Multicast DNS. Так что теоретически такой способ вполне неплохо подходит на роль универсального для определения IP-адреса сервера в локальной сети. Вероятно, есть некий процент устройств, на котором это не будет работать, но я думаю, что этот процент весьма небольшой. Да и все устройства, на которых это не будет работать, весьма старые.
WiFi Direct вроде начиная с 4.1.
Насколько я понял в процессе написания игрушки, JmDNS — единственное более-менее вменяемое решение данной задачи.
Тогда прошу прощения.
API 14 еще куда ни шло, но девайсы с Android 2.3 по-прежнему остаются в стороне.
1. Android Network Service Discovery.
После этого все остальное имеет лишь академический интерес. Дропнуть все старше 16 API коммерчески оправдано.
Да что уж там, давайте только Kit Kat оставим.
Только вот большинство потенциальных заказчиков вряд ли оценят подобный подход.
Заказчики они такие заказчики :) У меня пару лет назад требовали поддержку АПИ 3.
Я все таки говорю про реальный рынок. Там не сухие проценты, эти проценты имеют еще и качество (кто на Android 2.3 и кто на API 18)
Это оправдано, если есть возможность самостоятельно принимать решения о поддержке разных версий. Хотя и на 2.3.3 до сих пор довольно много активных пользователей (судя по статистике для моих приложений из google play).
Безусловно больше всегда лучше.
Но время берет свое, приложение планируем сегодня, делаем завтра, запускаем послезавтра. А тех пользователей все меньше и меньше. Кроме того, есть деликатный вопрос ценности пользователей. Обладатель свежего аппарата куда «денежнее», чем владелец галакси эйс 2011 года. И всегда есть предел допустимой переплаты за решение для всех.
Почему нельзя послать широковещательное сообщение на всю локальную сеть внутри Wi-Fi на которое ответят все устройства, поддерживающий нужный нам сервис?
Спасибо за статью. Ещё хотелось почитать про реальный опыт разработки игр с поддержкой локальной сети — насколько я представляю, там должно быть достаточно много проблем со скоростью работы (если говорить об экшн играх).
Опыта разработки именно экшн-игр у меня, увы, нет.
Вероятно, проблемы будут. Но все эти проблемы в общем-то вполне решаемы — вы же можете играть в какой-нибудь Call of Duty даже по интернету и не испытывать особых проблем.
Я имею ввиду, что при «классической» схеме мультиплеера по локальной сети — когда на одном устройстве запускается сервер и клиент, а на остальных — только клиенты, «серверу», возможно, будет не хватать производительности обрабатывать модель мира и все взаимодействия с клиентами. Ну это так, эвристика)
Sign up to leave a comment.

Articles