5

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

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

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

如果您知道一些好的解决方案,请解释一下它们是如何工作的

4

4 回答 4

2

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

于 2010-01-20T03:05:24.403 回答
1

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

XMPP 是

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

您将安装一个单独的服务器来处理消息传递,并在您的应用程序中实现一个带有可用之一的客户端。

于 2010-01-15T23:28:45.543 回答
1

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

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

于 2010-01-15T17:19:25.830 回答
0

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

于 2010-01-28T06:07:10.847 回答