我需要找到一种方法来观察我的应用何时停止通过bonjour发布服务。这通常发生在设备收到呼叫或某些此类中断时。
背景
我正在使用GCDAsyncSocket在同一网络中的2台设备之间进行通信,以播放播放音乐的应用程序(支持在后台播放)。
我使用NSNetService来广播其他应用程序(客户端)连接到服务器的IP和端口。
当服务器设备接到电话时,发布将停止,其他设备将无法看到此服务。
是否需要遵守一些特殊属性,以便我知道它何时停止并且我可以重新启动。
提前致谢
答案 0 :(得分:1)
老问题,但我目前面临同样的问题。
据我所知,您可以执行以下操作:
您可以使用NSNetServiceBrowser
和NSNetServiceBrowserDelegate
代表。
我假设你已经在使用NSNetServiceBrowser
类了
[self.domainBrowser searchForServicesOfType:@"yourIdentifier" inDomain:@"local."];
您可以在浏览器实例上设置委托。
当NSNetService消失时,将调用委托方法- (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didRemoveService:(NSNetService *)aNetService moreComing:(BOOL)moreComing
。
您可以实施此方法,并且需要操作。