2015-01-21 131 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