NSNetServices сохраняется после вызова метода stop?

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

1 ответ

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

Из документации Apple:

Поскольку неспособность показать действующий сервис является большей проблемой для пользователя, чем показ устаревшего сервиса, Bonjour намеренно ошибается, полагая, что сервис все еще доступен.

,

,

хотя Bonjour обычно обнаруживает новые сервисы в течение нескольких секунд, если сервис уходит, исчезновение сервиса может не быть обнаружено, пока ваше приложение не попытается подключиться к нему и не получит ответ.

Не следует полагать, что только потому, что API Bonjour сообщают об обнаруженной службе, она гарантированно будет доступна, когда программное обеспечение попытается получить к ней доступ.

Подключение к сетевым службам и их мониторинг: при сбое разрешения

Другие вопросы по тегам