【问题标题】:Best way to keep the page connection on?保持页面连接的最佳方式?
【发布时间】:2013-07-11 15:46:14
【问题描述】:

我正在使用 PHP 和 JQuery 开发一个网站。

如果有从数据库抓取的新数据,我想自动更新页面内容。

我尝试使用 JQuery 执行此操作,唯一的方法是 ajax 轮询,这需要我设置一个间隔来每隔一段时间调用一次页面。

我还读到我可以使用 Ratchet PHP WebSocket 或 node.js

我不想使用 ajax 轮询,因为必须从数据库中为每个用户获取大量数据。我也不知道 Ratchet 或 node.js 是如何工作的,哪一个是最好和最简单的。

有没有其他方法可以做到这一点,我应该选择哪一种?

和平

【问题讨论】:

  • 如果你只需要从服务器接收数据,我更喜欢使用Server-Sent Events(HTML5的新特性)。检查这个例子:developer.mozilla.org/en-US/docs/Server-sent_events/…
  • 所以这不适用于聊天应用程序?
  • 不,SSE是单向连接,只能从服务器接收数据,不能发送...
  • 我需要另一个选项,它可以让我也向服务器发送数据...

标签: php jquery ajax node.js ratchet


【解决方案1】:

如果您之前没有进行过消息传递,那么无论您采用哪种技术,都会有一点学习曲线(只是提醒一下)。一个长期存在的应用程序将始终运行在您将处理所有连接的客户端的位置。这与您的标准网站非常不同,在标准网站中,每个连接都位于其自己的服务器端脚本中并在完成时退出。

如果 PHP 是您最熟悉的语言,Ratchet 可能更容易上手,因为它完全是 PHP。但是,作为 PHP,它可能最多同时连接 5000 个用户。其他语言有更高的限制。

另一个需要考虑的范例是您可能不想不断地从数据库中读取更改。相反,当发生某些事情时,我会假设用户做了一些事情并写入数据库,因为发生这种情况时,您也会将相同的数据推送到连接的客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2011-12-20
    • 2013-10-15
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多