在网页上实时显示通知和消息的最佳方法是什么?

5

我对像Meebo、Facebook和MySpace一样的即时通讯方式很感兴趣,也希望能在页面上实现通知功能。例如,在我的网站上,当用户收到新邮件、照片评论、个人资料评论、好友请求等等时,他们将通过jQuery和AJAX在当前页面上收到通知消息和链接。

然而,从长远来看,这并不是最好的实现方式,因为我的jQuery代码需要每30秒左右运行一次PHP脚本,以查询所有打开此脚本的用户在mysql表中的数据。如果我能找到一种有效的方法,我想最终添加类似Facebook聊天栏的即时通讯功能。

我听说过Comet和HTML5 WebSockets,但我不确定它们是否适合这样的功能?我希望保持带宽的最小化,每隔几秒钟运行一次查询在高流量网站上似乎不太有效。

如果您知道一些好的解决方案,请简要说明它们的工作原理。

4个回答

2
你正在寻找一个“彗星”服务器。由于你在谈论PHP,你最好的解决方案是使用SaaS解决方案,比如WebSync On-Demand,因为当涉及到大量并发连接时,PHP存在扩展问题。另请参阅this question

1

你能否创建一个共享的消息队列以供Ajax查询?或许可以使用一个PHP脚本将大部分消息存储在Memcached中(并在失败时写入数据库)。

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


1

我认为Facebook在他们的聊天中使用XMPP,所以你可以看一下它。

XMPP是

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

您需要安装一个独立服务器来处理消息,在您的应用程序中,您需要使用其中一个可用的实现客户端。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接