Post

Replies

Boosts

Views

Activity

NSNetServiceBrowserDelegate's didRemoveService not being called
Some terminology first:Publisher device - device publishing the NSNetService in the local. domainBrowser device - device browsing for service with NSNetServiceBrowser in the local. domainThe issue:NSNetServiceBrowserDelegate's didRemoveService is not being called on the browser device when both the publisher and the browser device are connected to the same router and thepublisher device goes off the grid by enabling Airplane mode (I think turning WiFi off will also work). When the publisher and the browser are not connected to the router but are communicating directly (peer-to-peer), the issue doesn't reproduce.The problem is easily reproducible with the Apple's WiTap samplecode application (that is no longer exists in Apple's sample code 😟, but can be found on the net).Steps to reproduce:1. Connect the application to the same router2. Run the WiTap application on both devices3. Turn airplane mode on publisher deviceResult:The browser device still displays the publisher servicePublisher codeNSNetService *server = [[NSNetService alloc] initWithDomain:@"local." type:@"_myservice._tcp." name:@"my-id" port:0]; server.includesPeerToPeer = YES; server.delegate = self; [server publishWithOptions:NSNetServiceNoAutoRename|NSNetServiceListenForConnections]; self.server = server;Browser codeNSNetServiceBrowser *browser = [[NSNetServiceBrowser alloc] init]; browser.includesPeerToPeer = YES; browser.delegate = self; [browser searchForServicesOfType:@"_myservice._tcp." inDomain:@"local."]; self.browser = browser;Any ideas & suggestions will be highly appreciated!TL;DRI suspect that the problem is not directly related to NSNetService but rather related to Bonjour implementation. The reason I think so is that after force closing the browser app and re-running it (while the publisher device is still in Airplane mode), the browser devicestill shows the service as a result of the didFindService delegate method being called for a service that the publisher doesn't publish anymore.P.S. The issue reproduces on iOS 12 and below (tested down to iOS 7).Thanks.
7
0
2.3k
Jan ’19