2015-01-21 92 views
-1

我將爲MAC創建一個聊天應用程序。幾乎所有的事情都完成了。我現在唯一遇到的問題是編寫我的PHP API for server(我使用免費主機)。我使用POST將信息從客戶端發送到服務器和PHP中的ECHO,以通過數據連接代理從服務器響應客戶端。我認爲這不是最好的辦法。我也有一個數據庫,其中包含聯繫ID,名稱等,從PHP管理...我想要的是一個IDEA或一些文檔如何從PHP管理我的COCOA客戶端。 EX:我的客戶端X想要與Y聊天,所以客戶端X通過POST向服務器發送消息並且誰是目的地,然後我希望服務器將來自X的消息發送給Y.PHP服務器COCOA客戶端

我使用NSMutableURLRequest創建請求,NSData用於發送數據和NSURLConnection以連接到服務器。

我需要任何建議,文檔,代碼片段等。我有5個星期了,因爲我正在尋找一個解決方案,但我找不到任何幫助。

所以,我有幾個問題:

  1. 如何從服務器發送數據,而回聲?
  2. 我怎麼告訴服務器發送數據到客戶端只有一個。

謝謝您提前!

+2

檢出推送通知。 https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html – Rob 2015-01-21 11:24:53

+0

謝謝您的信息,但似乎不是我正在尋找...這些東西是有用的後我可以在用戶之間發送一些消息來處理遠程通知,但是現在我無法在用戶之間發送消息,因爲我不知道該怎麼辦。 – Mihai 2015-01-21 11:40:50

+1

在考慮開發一個應用程序之前,我會建議你閱讀關於服務器和移動客戶端之間網絡基礎知識的文章/書籍。 – 2015-01-21 12:24:48

回答

2

當用戶A首次向用戶B發送消息時,B可能不會主動運行該應用程序。 (想想你經常收到短信的頻率,而你不是積極使用消息應用程序。)你的聊天應用程序可能需要某種方式讓用戶B知道消息已發送給他們,即使你的應用程序可能不會目前正在運行。 Push notifications是這方面的首選技術。一旦用戶A和用戶B都在運行應用程序,您可以考慮使用其他體系結構以在它們之間進行主動聊天,但您可能需要一個功能來通知用戶聊天消息,並且您可以使用推送通知。這種設計考慮對於iOS應用程序更爲重要,但也可能是您考慮用於桌面應用程序的事情。

下一個問題是什麼是正確的架構,一旦A和B同時運行您的應用程序,並正在互相聊天。因此,讓我們假設您的設計需要A將消息發送到您的服務器,然後您的服務器將消息發送給B.第一部分(將消息發送到服務器)很容易,但第二部分(服務器發送消息給B)不適用於傳統的HTTP Web服務體系結構。您理論上也可以爲該進程使用推送通知,但您也可以考慮基於套接字的方法。參見Wenderlich的sockets tutorial。這是iOS的重點,但是架構/網絡問題非常相似。

但是,無論您用於交互式聊天的架構(例如套接字)如何,您都可能希望將推送通知用作整體解決方案的一部分。

+0

我再次感謝你,你在這裏有很多意義......我知道這個教程。我知道我需要使用Push通知,但現在我無法做到的是使用PHP進行此操作。在那篇教程中,Pyton作爲服務器的API使用,但是我希望在PHP中使用它。我有一個免費的主機,我想在PHP中爲它創建一個API,並從那裏處理我的客戶端。我需要知道如何從PHP客戶端進行管理。如果我在一週內沒有找到任何迴應,我會使用您的建議,我會選擇您的迴應以解決我的問題。在那之前,我會尋找一個使用PHP的服務器解決方案。 – Mihai 2015-01-21 13:08:49

+1

不幸的是,PHP並不適合這類業務問題。編寫一個返回客戶端請求響應的Web服務非常棒。但是這個問題需要更復雜的東西,爲每個活動客戶端維持一個開放的連接,有時會向客戶端發送未經請求的數據(例如傳入消息),這是一個由不同客戶端中完全不同事件觸發的進程。 – Rob 2015-01-21 17:22:29

+0

好吧,羅布,我明白了!你建議我用什麼來創建服務器的API?或者,你會如何做到這一點?只有這個概念對我很有意思。改變主意並不晚!謝謝。 – Mihai 2015-01-21 19:23:05