我有一个发布Bonjour服务的iOS应用程序。在我的网络上,Mac应用程序识别该服务,一切运行顺利。然而,在某些网络上,Mac并未“看到”Bonjour服务。我无法在自己的网络上重现这一点。我让用户使用Bonjour浏览器检查服务,但找不到它。有没有办法进一步诊断这个问题?我认为这可能是防火墙/路由器问题,但有些用户拥有非常简单的基于Apple的网络(机场)。关于可能导致这种情况的任何想法?
答案 0 :(得分:3)
您是否尝试过实施
- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict
方法?虽然我发现NSNetService有时也会有奇怪的行为,但它偶尔会提供有用的信息。停止NSNetService并重新发布是一个丑陋的选择,在某种程度上似乎对我有用。
答案 1 :(得分:1)
确保按上述方式实施...didNotPublish...
。有些路由器过滤掉了多播数据包,不幸的是,如果你不控制网络,你可以做很多事情。
答案 2 :(得分:0)
另一个跟进:修改设备名称似乎解决了这个问题。一位用户注意到他的iPad被发现但不是他的iPhone。 Bonjour浏览器证实了没有iPhone服务的iPad服务的存在。重命名iPhone解决了这个问题。这确实是一种奇怪的行为。