2013-05-26 57 views
1

我正在構建一個應用程序,它使用Bonjour在同一個wifi網絡上進行設備發現。我使用NSNetServiceNSNetServiceBrowser,它在一些無線網絡(如我的房子)上工作正常。Bonjour在公共Wifi上失敗

問題是,它不適用於像星巴克這樣的公共WiFi網絡。設備看到自己,但不是彼此。我已經嘗試設置自定義端口,如53453甚至443。我也讓設備選擇自己的端口,但沒有任何作用。

有人可以解釋什麼是鎖定在WiFi網絡,防止設備看到對方?有沒有機會找到可以在這樣的網絡上工作的端口?

+0

許多wifi接入點有一個選項可以有意阻止客戶端彼此通信(水平分割)。有問題的WiFi網絡可能使用這樣的選項?通過檢查同一網絡上的2個客戶端是否至少可以互相ping通來測試。 – Celada

回答

1

Bonjour建立在多播DNS之上。公共熱點禁用多播流量很常見,這會導致您的應用程序無法看到其他實例。

其他應用程序也將在多播禁用時中斷; iTunes和iPhoto共享將遭受與您在這些網絡上的應用程序相同的命運。