2011-06-30 210 views
1

我知道多少次的這是基於搜索的StackOverflow問過,但我仍然希望有人能告訴我,無論我是錯了...對等網絡聊天與iPhone

我爲iPhone創建點對點聊天應用程序。我最初的想法是避免使用服務器,所以想起了Bonjour。我很高興編寫了很長一段時間並實現了許多奇特的功能,但兩天前我開始測試兩個來自不同子網的客戶端,發現客戶端無法連接到對方!我突然意識到Bonjour適用於本地網絡,並且廣域服務廣播需要DNS服務器。我真的需要用於互聯網點對點聊天的服務器嗎?是否有任何其他選項不涉及在iOS平臺上使用服務器?

+0

你有沒有得到任何解決方案?我正在製作一個類似的應用程序,所以最終你會做什麼? – mayuur

回答

1

我想知道如何在不使用服務器的情況下做一個聊天應用程序。那裏有許多便宜的解決方案,亞馬遜有自己的服務,谷歌也是如此。您可以先嚐試,而無需支付一分錢。

+0

我使用bonjour在相同的本地網絡後面啓用聊天,客戶端本身充當服務器。但不適合在不同的子網絡客戶端。 – user668294

1

我從蘋果開發人員指南中找到以下內容。這應該回答你的問題 -

  1. Bonjour在多個子網之間工作嗎?

是。用於Mac OS X的DNS服務發現(DNS-SD)的第一個版本集中在單鏈路網絡的多播DNS(mDNS)上,因爲這是IP軟件最糟糕的環境。從Mac OS X 10.4開始,Bonjour現在使用動態DNS更新(RFC 2316)和單播DNS查詢來啓用廣域服務發現。

1

要回答這個問題,唯一的辦法就是讓你隨身攜帶的所有可能的與會者名單,以及他們當前的IP地址,併爲每個可能的參與者對所有其他人每次都報告它們的IP地址的變化。所以,如果你有100名可能的參與者,那麼你一定要告訴別人99時,您的IP地址發生變化,而那些99必須告訴你,當他們的IP地址更改。

卓悅可以在局域網,廣域網甚至WAN上的工作,但它絕不會在互聯網上工作。

服務器的作用是使每個端點只需要告訴一個端點(服務器)時,它的變化。我的建議是獲得一個廉價的互聯網主機,具有基本的PHP/MySQL功能,並寫一個非常簡單的腳本來發布和獲取用戶身份。