PubSubHubbub 是一个“开放的、服务器对服务器、基于 Web-hook 的发布 / 订阅协议,是 Atom 和 RSS 的扩展”。凭借该协议,感兴趣的参与者在 feed 有更新时会收到即时通知。该协议由 Google 开发,在 Google Code 中可以找到同名的项目。
PubSubHubbub 协议将“拉”机制转变成了“推”机制,客户端不用再定时轮询服务器以查看 feed 是否有更新。客户端订阅一个 Hub,当 feed 有更新时 Hub 会即时通知客户端。项目主页上描述的处理过程如下:
feed URL(“主题”)在 Atom 或 RSS 的 XML 文件中使用 <link rel=“hub” …> 描述自己的 Hub 服务。Hub 可以由 feed 的发布者运行,也可以作为任何人都能使用的公有Hub 。(它支持Atom 和 RssFeeds )
订阅者(对主题感兴趣的服务器)最初仍照常提取 Atom URL。如果 Atom 文件声明了其 Hub,订阅者就不用轮询 URL 了,而是注册 feed 的 Hub 并订阅更新。
订阅者从主题 URL 声明的 Hub 中订阅主题 URL。
发布者下次更新主题 URL 时,发布者软件会给 Hub 发送信息,告知 Hub 有更新了。
Hub高效地提取发布的 feed ,并向所有注册的订阅者组播新增或修改了的内容。
Google 已经在他们的几个服务中实现了该协议,包括 FeedBurner、Reader(共享条目)、Blogger,还有不久前推出的 Alerts。该协议是开放的,遵循 Apache License 2.0 许可。此外,Hub 可以在任何服务器上运行而并非限制在 Google App Engine 上。
Google 已经发布了一个 Hub 的参考实现,可用来测试发布 / 订阅过程以了解其工作方式。这个视频演示了一个实际使用该协议的例子。
查看英文原文: Instant Notifications Using Google’s PubSubHubbub Protocol
评论