如何实现Facebook通知?

时间:2011-03-19 03:03:28

标签: php javascript facebook yui

我正在尝试实施类似Facebook的实时通知系统,以便在有人将其添加为朋友时通知用户,例如他们的帖子或帖子回复他们的评论。

所有数据库和PHP部分都已完成,但我无法弄清楚如何像Facebook那样实现它。

每当有人喜欢/评论您在Facebook上的帖子时,屏幕左下角会出现淡蓝色框。只要有人点击按钮或在Facebook上发表评论,就会发生这种情况。我想知道我应该怎么做才能实现这个目标。

使用YUI或任何JavaScript框架,我可以在n秒后查询数据库表以检查通知。这种方法太重了。

我想知道是否有任何服务器端mod或脚本可以完成,以便每当我的数据库表中有新的通知条目时,服务器将告诉该特定客户端。这样就可以完全避免从客户端到服务器的不必要的请求调用,并且系统可以有效地为一次有超过50,000个在线用户的网站工作。

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:23)

您应该研究COMET技术,例如forever frametutorial)和长轮询。这使您可以使用服务器与客户端推送通信的形式。

答案 1 :(得分:5)

我真的很惊讶没人提到PubNubPusher

这两个(竞争对手)正在构建基础设施,允许实时通知,就像Facebook一样。

答案 2 :(得分:2)

答案 3 :(得分:0)

你基本上设置了一个请求,就像callng服务那样,要求你的服务器/数据库提供该用户的通知。你可以做一个while循环重试,如果没有通知(在搜索之间可能Thread.Sleep)。您的js请求将超时,然后您可以在超时时再次调用该函数。这意味着长时间的民意调查

答案 4 :(得分:-8)

唯一的方法是使用某种机制(例如Javascript)重复轮询服务器以获取更新。无法将服务器推送到Web浏览器。