I am using JmDNS to register a service and would like to discover it on iOS. I can discover the service using a JmDNS client as well as discovering several other services on the network. The problem is that I cannot discover my service in an iOS app, but I do see a slew of other services, but none of the ones seen in the JmDNS client. I have been testing using the Network Browser iOS app and it sees dozens of other services but none of the services that my JmDNS client sees.
The most obvious difference between the two batches of found services is that all the ones found by the iOS app are of the form name._tcp.local. and the ones found by the JmDNS client are all name._http._tcp.local.
I am clearly missing some key aspects to ZeroConfig since I would expect to see the same services in both places, my own as well as all the others on the network.
I have tried changing name._http._tcp to name._tcp and all that seems to do is make it so I can't discover the JnDNS service anywhere. I have also tried various combinations of naming.
public final static String REMOTE_TYPE = "_http._tcp.local.";
final HashMap<String, String> values = new HashMap<String, String>();
values.put("DvNm", "Sample-" + id);
ServiceInfo pairservice = ServiceInfo.create(REMOTE_TYPE, "sample", 1025, 0, 0, values);
jmdns.registerService(pairservice);
I would expect to see the same services in both places, my own as well as all the others on the network.
I am still digging but I did find the most complete Bonjour browser that resolves the issue and sees all the different services that I was only seeing separately on the different platforms. I was expecting to see everything based on a single request, but this browser makes a slew of requests that gets the job done. The Flame browser is available from the Apple app store, but fortunately, the code is also available on GitHub. It is well written and easy to follow, so if you're having this problem, check it out.