Ошибка разрешения NSNetService

Я создаю настольную игру, в которую можно играть через Wi-Fi на iPhone.

Когда устройство A приглашает устройство B к игре (попробуйте разрешить NSNetService, опубликованный B), устройство B может принять или отклонить его.

Если B отказывается, A получает уведомление, и все в порядке. Но если A попытается снова пригласить B позже, я получу следующую ошибку в моем методе делегата netService:didNotResolve:.

NSNetServicesErrorCode = -72003 NSNetServicesErrorDomain = 10

Ошибка -72003 означает NSNetServicesActivityInProgress... Как мне разрешить одному игроку "приглашать" другого игрока более одного раза?

Я использую библиотеку AsynchSocket, спасибо!


person Fernando    schedule 01.07.2011    source источник
comment
Опубликуйте часть своего кода, чтобы проиллюстрировать, что вы сейчас делаете.   -  person Nick Bull    schedule 01.07.2011
comment
Когда браузер находит новый сервис, я добавляю его в массив и вызываю [service resolveWithTimeout:]. Когда вызывается netServiceDidResolveAddress:, я подключаю свой сокет к этой новой службе, используя [self.socket connectToAddress:error:]... Когда пользователь касается строки моего tableView, я беру службу из массива и снова вызываю [self. socket connectToAddress:error:]... теперь он работает, но я думаю, что мне нужно подключаться только тогда, когда запрос пользователя... я прав?   -  person Fernando    schedule 02.07.2011


Ответы (2)


Хорошо, я разбираюсь.

Что я делаю, так это разрешаю NSNetService как можно быстрее в методе делегата browserDidFind:. Когда нужно подключиться, я вызываю [socket connectToAddress:], передавая адрес NSNetService, больше никаких ошибок!

Спасибо!

person Fernando    schedule 05.07.2011

Перед вызовом [service resolveWithTimeout:] [service stop]

person Viktor Goltvyanitsa    schedule 29.12.2015