Сервис iOS / Mac Bonjour не найден в сети - PullRequest
4 голосов
/ 04 ноября 2011

У меня есть приложение для iOS, которое публикует сервис Bonjour. В моей сети приложение Mac распознает службу, и все работает без сбоев. Однако в некоторых сетях служба Bonjour не «видится» Mac. Я не могу воспроизвести это в моей собственной сети. Я просил пользователей проверить сервис с помощью Bonjour Browser, и он не найден. Есть ли способ диагностировать эту проблему дальше? Я думал, что это может быть проблема с брандмауэром / маршрутизатором, но у некоторых пользователей очень простые сети на базе Apple (Airport). Любые идеи о том, что может быть причиной этого?

Ответы [ 3 ]

3 голосов
/ 04 ноября 2011

Вы пытались реализовать метод

- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict

?иногда он может предоставлять полезную информацию, хотя я обнаружил, что NSNetService иногда ведет себя странно.Остановка NSNetService и повторная публикация - это ужасный вариант, который, кажется, мне в какой-то степени работает.

1 голос
/ 05 ноября 2011

Убедитесь, что вы внедрили ...didNotPublish..., как указано выше. Некоторые маршрутизаторы отфильтровывают многоадресные пакеты, и, к сожалению, если вы не контролируете сеть, с этим ничего не поделаешь.

0 голосов
/ 14 мая 2012

Еще одно продолжение: изменение имени устройства, похоже, решает проблему. Один пользователь отметил, что был обнаружен его iPad, но не его iPhone. Bonjour Browser подтвердил наличие сервиса iPad без сервиса iPhone. Переименование iPhone решило проблему. Это действительно странное поведение.

...