Как проверить, прекратил ли NSNetService публикацию

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

Предыстория:

Я использую GCDAsyncSocket для связи между двумя устройствами в одной сети для приложения, которое воспроизводит музыку (поддерживает воспроизведение в фоновом режиме).

Я использую NSNetService для передачи IP-адреса и порта другим приложениям (клиентам) для подключения к серверу.

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

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

заранее спасибо


person srik    schedule 08.05.2013    source источник


Ответы (1)


Старый вопрос, но сейчас я сталкиваюсь с той же проблемой.

Насколько я знаю, вы можете сделать следующее:

Вы можете использовать делегата NSNetServiceBrowser и NSNetServiceBrowserDelegate.

Я предполагаю, что вы уже используете класс NSNetServiceBrowser с

[self.domainBrowser searchForServicesOfType:@"yourIdentifier" inDomain:@"local."];

Вы можете установить делегата в своем экземпляре браузера.

Метод делегата - (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didRemoveService:(NSNetService *)aNetService moreComing:(BOOL)moreComing будет вызываться при исчезновении NSNetService.

Вы можете реализовать этот метод и выполнять необходимые операции.

person Sebastian    schedule 23.04.2015