2011-04-11 12 views
1

我得到了一个任务,为此我可以使用任何www技术,如HTML,JavaScript,PHP等。我真的很抱歉地说,我没有研究过任何这些技术。因此,我花了几个教程,并通过他们浏览寻找答案。服务器如何一次与两个客户端通信(JavaScript,HTML,PHP)?

我发现许多问题的解决方案,但尚未解决一个问题。它是这样的:

我希望两个客户端通过服务器进行通信以完成此任务。一个发送消息,服务器处理它并转发给下一个。

PHP教程无论如何都告诉我这样做。他们都谈到了一个客户端与服务器之间的通信。

请帮助。告诉我一个方法来做到这一点。谢谢。

+0

发送邮件...就像电子邮件一样? – 2011-04-11 19:44:33

+0

不,我正在考虑像clientA这样的东西将其状态发送到服务器,服务器将它发送到clientB,以便clientB知道clientA正在做什么,并可以决定他/她应该做什么。 – PProudy 2011-04-12 03:30:12

回答

0

你可能想在Google上的“php聊天服务器”。构建聊天服务器是一种简单的入门方法。

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/

http://code.jenseng.com/jenChat/

+0

感谢您的链接。我一直认为我没有做足够的研究,因为我只查看教程。似乎是对的。无论如何,这些链接都很棒。我从他们身上学到了很多东西。这是一个不错的开始。我会从那里开始。 – PProudy 2011-04-12 03:24:58

3

目前,没有恢复到尖端的(也可能是哈克/不可靠的)技术,你的PHP服务器无法启动与您已经加载到网页浏览器的网页通信。这是HTTP协议工作方式的结果。

解决此问题的一种方法是轮询“数据接收”端。像发布 - 订阅模式。要做到这一点

一种方式将是:

  1. 一个客户端发送数据,使用指定目标为这个数据的HTTP请求(XHR又名AJAX)(其它客户端)服务器。
  2. 服务器将此数据存储在持久性存储(本地文件,数据库等)中。
  3. 第二个客户端周期性地向服务器发送请求,询问是否有任何新数据要使用。这可以通过在JavaScript中使用setInterval和XHR来完成。

我建议你看一看:

http://en.wikipedia.org/wiki/Publish/subscribe

而且还对切削刃的方式来做到这一点,看看Socket.IO:

http://socket.io

+0

谢谢,非常感谢你的知识。太糟糕的PHP不能做到这一点。你的发布者和订阅者的链接也很棒(你每天都会学到一些东西!)。好的,我会将数据保存在一个文件中。但是,无论如何,服务器可以通知客户端数据已准备就绪,而无需客户端周期性地发送请求?该套接字程序很好。但我想现在我宁愿坚持使用PHP。再次感谢。 – PProudy 2011-04-12 03:19:37

+0

不,如我所说,服务器无法启动与客户端的通信。这是HTTP工作的方式。 – 2011-04-12 17:59:52