2011-11-04 59 views
4

我有一個發佈Bonjour服務的iOS應用程序。在我的網絡上,Mac應用程序可以識別該服務,並且一切都運行順利。但是,在某些網絡上,Bonjour服務並未被Mac「看到」。我無法在我自己的網絡上重現這一點。我有用戶使用Bonjour Browser檢查服務,但沒有找到。有沒有辦法進一步診斷這個問題?我認爲這可能是一個防火牆/路由器問題,但一些用戶有非常簡單的基於Apple的網絡(機場)。任何想法可能會導致這種情況?在網絡上找不到iOS/Mac Bonjour服務

回答

0

另一個後續:修改設備名稱似乎可以解決問題。一位用戶指出,他的iPad被發現,但不是他的iPhone。 Bonjour瀏覽器確認沒有iPhone服務的iPad服務的存在。重命名iPhone解決了這個問題。這確實是一個奇怪的行爲。

3

您是否嘗試過實施

- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict 

方法?它偶爾可以提供有用的信息,儘管我發現NSNetService有時也有奇怪的行爲。停止NSNetService並重新發布是一個醜陋的選擇,這在某種程度上似乎對我有用。

+0

好的,我實現了委託方法,並發現我得到NSNetServicesBadArgumentError(-72004)。我添加了調試輸出,這裏是傳遞的參數:@「_ pmobilesync._tcp」,@「local。」,端口61508.仍然返回錯誤的參數錯誤。我用@「」而不是@「本地」來嘗試。並嘗試使用尾部'。'的服務名稱。 - 相同的結果。有什麼辦法可以獲得更多關於壞論點的信息嗎? – greg

+0

你可以發佈你的發佈消息嗎? – jbat100

+0

有沒有簡單的方法來獲取它?我的數據包嗅探了我的網絡,這裏是一個樣本包。僅供參考:問題不在我的設備/機器上發生。我可以看到服務很好。 http://www.barereef.com/resources/dump.txt – greg

1

確保您按照上述實施...didNotPublish...。有些路由器會過濾出多播數據包,不幸的是,如果您不控制網絡,那麼您可以對此做很多事情。

+1

作爲後續工作,它看起來像一些用戶可能有問題,他們的本地無線路由器不支持mDNS或禁用UPnP。 – greg