pubsubhubbub简介
2009年9月9日
4 条评论
Google最近发布了pubsubhubbub协议,看上去挺简单,倒解决了我多年来关于RSS的疑惑。本来我一直以为RSS订阅是有显示的更新提示机制的,在挖掘了一些文档和实现后,发现只是简单的poll,不由得为其效率担心。好在现在有很多在线订阅器,减少了部分流量,不然很难想象一般的小站怎么能撑得住大量用户的轮询。但这么poll下去也不是个办法,效率还是不行。Google发布的pubsubhubbub协议就是为了解决这个问题而提出的,是个20%工作时间的项目。
下面的简介翻译自项目主页。
(pubsubhubbub)是一个简单的、开放的、服务器对服务器的、基于web做hook(订阅)的发布/订阅协议,作为ATOM和RSS的扩展。
支持pubsubhubbub协议的服务器,在一个它们感兴趣的话题(feed URL)更新时,可以得到近乎实时的通知(通过webhook回调)。
协议大体上是这样:
- 一个feed URL(话题)在它的ATOM或者RSS的XML文件里,通过<link rel=”hub” … >声明它的hub服务器。服务器可能由发布者运营,也可能是一个所有人都能使用的社区hub(支持ATOM和RSS的feed)。(APPSPOT可能被墙,这里推荐另一个实现superfeedr)
- 订阅者(对某个话题感兴趣的服务器)一开始像往常那样取得话题的ATOM。如果在ATOM文件里声明了hub信息,订阅者就可以跳过痛苦的、重复的URL轮询,转而在feed的hub上注册并订阅该话题的更新。
- 订阅者在声明的hub上订阅话题的URL。
- 当发布者更新话题的URL时,发布者的应用会告诉hub说有一个更新。
- hub得到更新的内容并把更新内容向该条目的订阅者进行广播。
协议本身是去中心化且自由的。没有任何公司处于控制的核心地位。任何人都可以运营一个hub、ping(发布)更新或者通过hub订阅更新。
作为起步,我们提供了一个hub的一个开源参考实现(协议中最难的部分),运行在GAE上,所有人都可以用(还要看某墙的脸色)。
最近评论