使用Google的PubSubHubbub协议实现即时通知

PubSubHubbub 协议概述

PubSubHubbub 是一种开放的、基于服务器到服务器的 Web Hook 发布/订阅协议,作为 Atom 和 RSS 的扩展。该协议由 Google 开发,旨在让感兴趣的各方在订阅的 Feed 更新时能够即时收到通知。

协议工作原理

  1. 声明 Hub 服务器
    在 Atom 或 RSS XML 文件中,Feed URL(称为“主题”)通过 <link rel="hub" ...> 声明其 Hub 服务器。这些 Hub 可以由 Feed 发布者运行,也可以是任何人都可以使用的社区 Hub。
  2. 订阅者初始化
    订阅者(对某个主题感兴趣的服务器)首先像平常一样获取 Atom URL。如果 Atom 文件声明了 Hub,订阅者就可以避免重复轮询 URL,而是向 Feed 的 Hub 注册并订阅更新。
  3. 订阅过程
    订阅者从主题 URL 声明的 Hub 订阅主题 URL。
  4. 发布者更新
    当发布者更新主题 URL 时,发布者软件会通知 Hub 有更新。
  5. Hub 分发更新
    Hub 会高效地获取发布的 Feed,并将新的或更改的内容多播给所有注册的订阅者。

协议的优势

  • 即时通知:与传统的轮询方式相比,PubSubHubbub 协议将拉取(pull)方式转变为推送(push)方式,使得订阅者几乎可以即时收到更新通知。
  • 减少资源浪费:避免了重复轮询带来的资源浪费。

Google 的应用

Google 已经将该协议应用于多个服务,包括 FeedBurner、Reader(共享项目)、Blogger 以及最近的 Alerts。该协议是开放的,采用 Apache License 2.0 许可,因此任何人都可以使用。

Hub 的运行环境

Hub 可以在任何服务器上运行,不一定要在 Google 的 App Engine 上运行。Google 提供了一个 Hub 的参考实现,可以用于测试发布/订阅过程。此外,Google 还提供了一个 视频演示,展示了该协议的实际工作过程。

总结

PubSubHubbub 协议通过推送机制实现了 Feed 更新的即时通知,减少了资源浪费,并且是开放的、可广泛应用的协议。Google 已经在其多个服务中实现了该协议,并提供了参考实现和演示视频,方便开发者理解和使用。

阅读 19
0 条评论