WebSub(前身为 PubSubHubbub)是一种能够实时通知内容更新的协议。它基于发布者/订阅者模式,即发布者发布内容更新,订阅者接收这些更新。

  • 发布者 = 博客网站

  • 订阅者 = 使用 Feed 解析器的读者

  • 中转 = WebSub

WebSub 的主要目的是提供实时的变化通知,改善了客户端以任意时间间隔定期轮询 feed 服务器的典型情况。这样,WebSub 就能提供 HTTP 推送通知,而不需要客户端花费资源来轮询变化。

使用 WebSub 的好处:

  • 使用 RSS 阅读器的读者能够更快收到新文章
  • 减少 feed 解析器向网页服务器发送的请求数量,节省带宽。 不使用 WebSub 的话,feed 解析器为了保持及时更新,会不断地(e.g. 每半小时)向网页服务器请求下载一次 Feed XML 文件,以此对比变化。让服务器压力增大
  • 或许能加快 Google 录取博客新文章到索引的速度

我使用hexo-generator-feed插件来生成 RSS 订阅源,详细配置选项请参考官方文档

修改配置文件

修改根目录下的_config.yml:

1
2
feed:
hub: https://pubsubhubbub.appspot.com

hexo g 生成博客,我的 atom.xml 文件中多了一行代码:

1
<link href="https://pubsubhubbub.appspot.com/" rel="hub"/>

本地运行看到的效果。

设置WebHook

在GitHub Pages仓库,Settings -> Webhooks -> Add webhook

保存设置后,手动激活 webhook 进行测试,得到结果 204 意味设置成功。

验证WebSub是否设置成功

使用谷歌提供的 PubSubHubbub 工具 ,查看WebSub是否设置成功。

填入博客 RSS URL,然后 Get Info。

查看上次更新时间Last successful fetch,已经支持实时推送了。

Refence

提升 RSS 体验:Hexo 博客 Feed 指北

给 Hexo 博客加上 PubSubHubbub 协议实现 RSS 实时推送