PubSubHubbub是一种基于HTTP的发布-订阅协议,通过引入Hub中心实现RSS/Atom内容的实时推送。发布者在更新内容后通知Hub,Hub立即向所有订阅者推送更新,避免了传统轮询的延迟与资源浪费。实现步骤包括:在Feed中声明Hub地址;订阅者向Hub注册回调地址;发布者更新时通知Hub;Hub抓取并转发最新内容给订阅者。该协议曾广泛用于WordPress、Medium、Feedly等平台,现仍适用于自建博客与去中心化网络,支持通过插件、静态网站构建或CI/CD Webhook集成。关键在于确保回调接口可处理验证与POST数据。

RSS本身是一种基于拉取(pull)模式的内容分发格式,订阅者需要定期轮询源地址来检查更新。而PubSubHubbub(简称PuSH)是一种建立在RSS/Atom之上的基于推送的协议,它让内容发布者在更新文章后,主动通知订阅系统,从而实现近乎实时的内容更新。
PubSubHubbub 是一种开放的、基于HTTP的“发布-订阅-中心”通信协议。它引入了一个中间角色——Hub(中心服务器),用来协调内容发布者和订阅者之间的实时通信。
工作流程如下:
这大幅减少了延迟,同时降低了网络资源消耗(避免频繁轮询)。
要通过 PubSubHubbub 实现 RSS 实时更新,需完成以下步骤:
1. 发布者配置 Feed 并声明 Hub在你的 RSS 或 Atom 订阅源中加入 Hub 声明,告诉订阅者“我支持推送”。例如,在 Atom feed 中添加:
<link rel="hub" href="https://pubsubhubbub.appspot.com/" />
这表示你使用 Google 的公共 Hub 服务(也可自建 Hub)。
2. 订阅者向 Hub 发起订阅请求当用户订阅你的 Feed 时,订阅服务不会直接轮询你的 RSS 地址,而是向你在 Feed 中声明的 Hub 发起一个订阅请求,包含:
Hub 会向你的服务器确认订阅有效性(通过 HTTP 验证)。
3. 发布内容时通知 Hub当你发布新文章后,立即向 Hub 发送一个 POST 请求,通知它你的 Feed 已更新。例如:
POST https://pubsubhubbub.appspot.com/publish Content-Type: application/x-www-form-urlencoded hub.mode=publish&hub.url=https://yourblog.com/feed
Hub 收到后,会抓取你的最新 Feed 内容。
4. Hub 推送更新给所有订阅者Hub 解析你的 Feed,将最新条目以 POST 请求形式发送到每个订阅者的回调地址。数据通常是 Atom 或 RSS 格式。
订阅者收到后解析内容,更新本地缓存或通知用户。
PubSubHubbub 曾被广泛用于 WordPress 博客、Medium(早期)、Feedly 等服务,以提升订阅体验。虽然近年来部分大型平台转向自有推送机制(如 WebSocket 或专用 API),但 PuSH 仍适用于自建博客、独立媒体和去中心化内容网络。
主流支持方式:
基本上就这些。通过引入 Hub 中心,PubSubHubbub 让原本被动的 RSS 变得实时响应,不复杂但容易忽略细节,比如回调地址必须能处理 POST 和验证请求。
以上就是什么是RSS的PubSubHubbub协议? 如何实现RSS内容的实时推送和更新?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号