Facebook通知系统:是否轮询?

时间:2010-09-24 15:39:21

标签: facebook notifications

当用户第一次登录时通知,不是那么难,只需要数据库扫描,我可以处理。然而,当朋友发送对简档X的请求或评论时,发送通知,并且即使在用户X没有做出任何请求时也几乎立即在另一端接收。是民意调查吗?不喜欢它,因为页面永远不会刷新自己。它一定是别的吗?任何人都有任何想法?也许网络推送?

2 个答案:

答案 0 :(得分:9)

Facebook使用长轮询。

当您在他们的页面上时,他们会有一个脚本不断向特定URL发出请求。处理该URL的服务器首先等待消息进入其队列,然后将该消息发送给用户,而不是立即响应。如果达到某个超时,服务器会在不发送消息的情况下响应,并且客户端脚本会向该URL发出另一个请求。

要查看此操作,请在Facebook页面上打开Firebug的网络标签,然后等待几分钟。您应该看到持续一分钟的请求,然后是新的请求。

答案 1 :(得分:1)

我相信他们会使用AJAX / Javascript。它将允许页面从服务器获取信息并显示它而无需重新加载页面。你应该可以使用像JQuery之类的AJAX库或类似的东西来做到这一点。至于Facebook本身是否推送或投票,我不知道,但你可以通过使用AJAX进行轮询来获得类似的行为。