【问题标题】:PHP, Apache, Mysql, HTML5 - getting changes from server without requesting them (push)PHP、Apache、Mysql、HTML5 - 从服务器获取更改而不请求它们(推送)
【发布时间】:2011-10-28 19:47:21
【问题描述】:

有没有办法在 HTML5(也许是 websocket?)中为 ajax 请求设置某种推送机制?例如,我希望我的登录用户收到一条新消息通知,而无需向服务器发送定期 ajax 请求来检查是否真的有新消息。

现在,我每隔几秒钟检查一次,如果我得到一个数字,我会相应地更改 UI,但是对于 10000 个用户来说,这往往会对频繁更新的服务器提出很高的要求。

如果 HTML5 不具备处理此问题的本机能力,那么 Comet (http://www.zeitoun.net/articles/comet_and_php/start) 是不是比定期 ajax 调用更好的方法?

【问题讨论】:

    标签: php mysql ajax html push


    【解决方案1】:

    Comet 正是为此而生,但 HTML5 中的 Websockets 将提供更好的性能。见https://stackoverflow.com/questions/4262543/what-are-good-resources-for-learning-html-5-websockets

    但是,Websockets aren't supported in most browsers 还没有,所以您需要一个库来充当您的应用程序和当前浏览器支持的特定实现之间的抽象层(如果 WebSockets 可用,则使用它们,但回退到 long - 必要时轮询、Flash 套接字等)。幸运的是,有很多这样的库。

    要为您的应用找到合适的实现,您应该查看 CometDaily 的 Comet Maturity Guide。但是,这里没有提到 APE project (Ajax Push Engine),它现在正受到 Web 应用程序开发人员的广泛关注。

    【讨论】:

    • 没关系,我只需要最新版本的 Chrome。如果您手头有任何资源,您可以链接到一些关于此的资源吗?
    • 我明白了。我仍然想用 Websockets 来做这件事——我 100% 肯定我在 Chrome 或最新的 Firefox 之外的任何浏览器上都不需要它。我是否还需要安装不同/升级的 Apache 服务器以支持 websockets,还是本机支持?
    • 如果只需要支持HTML5浏览器,客户端会容易很多。查看stackoverflow.com/questions/1253683/websocket-for-html5 获取不同平台的服务器端实现列表
    • 太棒了,谢谢,这就是我需要的 PHP 解决方案,而无需安装许多新的服务器端东西。我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2015-03-24
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多