NSNetServices сохраняется после вызова метода stop?
Я делаю простую добрую трансляцию с использованием NSNetServices. Все работает отлично, когда я запускаю и прекращаю совместное использование Bonjour при запуске / выходе приложения. Тем не менее, если я отключаю Bonjour с помощью вызова метода stop, мое приложение по-прежнему транслирует неработающую службу даже после вызова сообщения netServiceDidStop: Delegate, что предотвращает перезапуск службы до повторного запуска приложения. Документация Apple делает его очень простым, просто публикуйте или останавливайте по мере необходимости... Я что-то упустил?
1 ответ
Кажется, что иногда сервисы показываются, даже когда они больше не доступны.
Из документации Apple:
Поскольку неспособность показать действующий сервис является большей проблемой для пользователя, чем показ устаревшего сервиса, Bonjour намеренно ошибается, полагая, что сервис все еще доступен.
,
,
хотя Bonjour обычно обнаруживает новые сервисы в течение нескольких секунд, если сервис уходит, исчезновение сервиса может не быть обнаружено, пока ваше приложение не попытается подключиться к нему и не получит ответ.
Не следует полагать, что только потому, что API Bonjour сообщают об обнаруженной службе, она гарантированно будет доступна, когда программное обеспечение попытается получить к ней доступ.
Подключение к сетевым службам и их мониторинг: при сбое разрешения