2011-07-31 72 views
0

我想爲使用HTTP POST請求的特殊類型的遠程設備進行通信的iOS設備創建應用程序。問題是這個設備實際上扮演着客戶端的角色,而iOS設備必須是接受請求的服務器。下一個問題,主機名和端口必須在發送請求的設備上靜態配置。如何簡化使用Bonjour對iOS設備的尋址?

雖然我知道可以嘗試使用動態DNS服務和UPnP/IGD或NAT-PMP來解決iOS設備位於NAT路由器後面的問題,但我想知道使用Bonjour是否可以簡化問題在某種程度上。我在網絡上是一個新手,所以我正在尋找方向,並希望避免Bonjour的研究,如果它不會帶給我什麼。

如何解決這個問題的任何其他想法也受到讚賞。

+0

網絡拓撲結構的更好描述可能有助於 - 在同一本地網絡上的iOS設備和其他「客戶端」設備? –

+0

這實際上是重點,他們不是,所以他們需要通過互聯網進行通信,而iOS可能使用WiFi或3G在某個路由器和NAT之後 –

+0

雖然Bonjour(mDNS)可以在廣域網上使用,但它的確適用於在鏈路本地網絡上進行廣告/發現。如果iPhone通過蜂窩網絡連接,則uPNP無法真正依賴於iOS。設備是面向互聯網還是位於路由器之後? –

回答

1

我想到了這一點。恕我直言,你不能保證你總是能夠通過廣域網公開基於iOS的服務(雖然這是可能的),所以這是不實際的。

我建議的最好的解決方案是使用uPNP打開路由器後面的設備到外部世界,然後讓它發送iOS push notification到具有細節(主機名,IP地址,端口等)的iPhone。

然後,iPhone會與防火牆設備建立某種持久連接以接收數據。

0

Bonjour是一個很好的系統,可以發現並連接到服務/客戶端,但只能在本地網絡上使用。我不認爲通過互聯網嘗試它是一個好主意。