【问题标题】:Best way to show notifications and messages LIVE on a webpage?在网页上实时显示通知和消息的最佳方式?
【发布时间】:2010-01-15 17:11:43
【问题描述】:

我对一种非常好的即时通讯方式感兴趣,例如 meebo、facebook 和 myspace 都有,也适用于页面上的通知。现在以我的网站为例,当用户收到新的邮件消息、照片评论、个人资料评论、好友请求等其他内容时,他们将使用 jQuery 和 AJAX 在他们所在的页面上收到通知消息和链接。

我相信在很大程度上这不是最好的方法,因为我的 jquery 代码基本上必须每 30 秒左右运行一个 PHP 脚本来为每个打开页面的用户查询 mysql 表运行此脚本。如果我能找到一种有效的方法,我想最终在屏幕底部的聊天栏中添加某种即时消息,例如 facebook。

我听说过 Comet 和 HTML5 WebSockets 这两个术语,但我不确定这些是否是我应该为此类功能寻找的解决方案?我希望将带宽保持在最低限度,并且每隔几秒运行一次查询在高流量站点上似乎效率不高。

如果您知道一些好的解决方案,请稍微解释一下它们的工作原理

【问题讨论】:

    标签: php javascript ajax comet websocket


    【解决方案1】:

    您正在寻找“彗星”服务器。由于您在谈论 PHP,因此您最好的解决方案是 SaaS 解决方案,例如 WebSync On-Demand,因为 PHP 在大量并发连接保持打开时存在扩展问题。另见this question

    【讨论】:

      【解决方案2】:

      我认为 Facebook 使用 XMPP 进行聊天,所以看看吧。

      XMPP 是

      一种用于实时通信的开放技术,它支持广泛的应用程序,包括即时消息传递、在线状态、多方聊天、语音和视频通话、协作、轻量级中间件、内容联合以及 XML 数据的通用路由。

      您将安装一个separate server 来处理消息传递,并在您的应用中实现一个具有可用libraries 之一的客户端。

      【讨论】:

        【解决方案3】:

        你能有一个 ajax 可以查询的共享消息队列吗?也许它是一个 php 脚本,将大部分消息存储在 memcached 中(并且可能在失败的情况下写入 db)。

        不确定,但很想知道其他解决方案...

        【讨论】:

          【解决方案4】:

          基本问题是你需要实现一个Comet服务器(即实现Server Push)。标准的 Web 主机和 apache 不容易让您轻松做到这一点。另一个托管解决方案(Web 同步除外)是Goldfish Server。目前免费。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-12
            • 1970-01-01
            • 2012-11-17
            • 2012-12-09
            • 1970-01-01
            • 2010-09-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多