知道如何实现这个吗?

时间:2011-01-28 11:50:54

标签: php javascript mysql xhtml mootools

任何想法如何使用MySQL + PHP + Javascript(mootools)实现这个(http://fluin.com/63)?

简而言之,它是一个实时线程对话的Web应用程序。

更新

这使用http://www.ape-project.org/home.html

知道如何在没有AJAX推送(猿)的情况下实现实时内容吗?

4 个答案:

答案 0 :(得分:1)

  1. 安装Firefox
  2. 安装Web Development toolbar
  3. 安装Firebug
  4. 安装HttpFox
  5. 阅读上述工具的文档,了解如何使用,以及它们可以做什么。
  6. 转到http://fluin.com/63。使用上述工具进行检查。
  7. 阅读数据库和数据模型以及MySQL。
  8. 建立自己的。

答案 1 :(得分:0)

嗯,这取决于你对实时的定义,在技术意义上,对于公共IP网络和传统的tcp堆栈来说,这是不可能的,因为你无法控制时间。

虽然更接近主题,但是为了在没有直接用户干预的情况下更新任何网页,您必须使用javascript来轮询服务器自上次成功轮询以来的更改,并在一定时间间隔内执行此操作。在计算这些间隔时,您必须考虑网络/服务器负载以及用户感到舒适的延迟。

当然,服务器必须存储新数据及其及时状态(创建时间戳是这样做的一种方式),以便能够区分已经传送到各个客户端的内容。

一旦服务器报告新内容,它就会通过javascript插入到dom页面中,用户会看到响应。

当然,这有点笼统,但你应该明白这一点。

答案 2 :(得分:0)

这不像是一个吼叫声吗?这里有example

答案 3 :(得分:0)

仅使用PHP正确执行此操作非常困难。如果你有5个用户,你可以使用长轮询,但是当你让1000个用户说它时肯定不会扩展。

我的帖子中的截屏视频(链接)显示了如何实现它,但它有一些缺陷:

  • 它接触光盘(光盘与内存相比非常慢)。
  • 更糟糕的是,它还经常轮询光盘(filemtime())。

也许phet(PHP)能够扩展。你应该尝试一下。

为了实现规模化,我认为至少需要:

  • 可以处理负载的长轮询(至少是长轮询。你有更好的传输)的良好实现。
  • 使用redismemcached等内容将数据保存在内存中(比dics快得多)。

我会用:

  • 带有socket.io(视频)模块的node.js。
  • 要将数据保存在内存中,我会使用node_redis(视频)。
相关问题