FreshRSS WebSub实战教程:实时推送新文章,告别定时轮询刷新
FreshRSS WebSub实战教程实时推送新文章告别定时轮询刷新【免费下载链接】FreshRSSA free, self-hostable news aggregator…项目地址: https://gitcode.com/gh_mirrors/fr/FreshRSSFreshRSS是一款免费、可自托管的 RSS 新闻聚合器而它的WebSub功能可以让新文章在源站发布的瞬间推送到你的订阅列表——不再依赖定时轮询刷新真正实现即时 RSS 更新。本教程将带你从零理解 WebSub 原理到完成 FreshRSS 实时推送的完整配置。为什么需要 WebSub 实时推送传统 RSS 阅读器靠「拉取」获取文章每隔 15 分钟或 30 分钟问一次源站「有没有新内容」。这带来两个问题延迟最坏情况下要等一整个轮询周期才能看到新文章负担高频轮询会给博客服务器带来不必要的压力FreshRSS 因此把轮询下限限制在 15 分钟。而WebSub前身 PubSubHubbub是 W3C 标准协议采用「推送」模式角色只有三个角色说明FreshRSS 中的对应Publisher发布者发布 RSS/Atom 的源站你订阅的博客Hub中枢监听发布者有新内容时通知订阅者第三方推送中枢Subscriber订阅者接收实时通知的一方FreshRSS 实例源站一发布新文章Hub 就把文章 XML 推送到 FreshRSS 的回调地址p/api/pshb.php文章即刻入库。官方文档docs/en/users/WebSub.md启用 WebSub 的 3 个前提条件⚡ 在动手配置前请先确认以下三点FreshRSS 必须有公网地址Hub 要从外部访问你的实例base_url配置必须是公网可路由的地址内网穿透也可以但必须能被第三方服务器访问p/api/目录可公开访问与 FreshRSS API 的要求相同回调接口 p/api/pshb.php 必须可被外部请求订阅的源站支持 WebSubFriendica 实例、WordPress含 WordPress.com 与插件、Blogger、Medium 等平台均已原生支持。可通过在线推送测试工具如 Push Tester验证某个 RSS 源是否支持即时推送。配置教程三步开启 WebSub 开关第 1 步检查系统配置Web 安装向导会自动检测如果服务器具有公网地址会默认开启 WebSub 支持。你也可以随时检查配置文件 data/config.php默认模板见 config.default.phpbase_url https://freshrss.example.net/, pubsubhubbub_enabled true,⚠️ 注意base_url不可被外部访问时不应启用pubsubhubbub_enabled否则订阅请求会一直超时。第 2 步在管理后台确认进入管理 → 系统设置可以看到「即时通知WebSub」选项见 app/views/configure/system.phtml。该开关是只读展示只要pubsubhubbub_enabled为 true 且服务器可公网访问即自动勾选。第 3 步验证推送链路FreshRSS 会在刷新订阅时自动完成 WebSub 订阅流程见 app/Models/Feed.php解析源站 XML 中link relhub找到 Hub 地址生成随机回调密钥向 Hub 发起subscribe请求回调地址形如https://你的域名/api/pshb.php?kxxxxHub 反向验证你的回调地址后订阅生效——之后每次源站发文Hub 都会即时推送 XML。订阅元数据按源站 URL 的 SHA1 哈希存储在 data/PubSubHubbub/ 目录含!hub.json租约信息与订阅用户列表WebSub 专用日志位于data/users/_/log_pshb.txt排查推送问题首先看这里。自动降级机制推送失败也不丢文章FreshRSS 的 WebSub 实现非常稳健app/Controllers/feedController.php租约自动续期Hub 订阅是有租约的leaseFreshRSS 会在租约到期前约 1 小时内自动续订无需人工干预推送异常自动回退如果某次轮询中发现「本该由推送送达」的新文章系统会标记该源 WebSub 出错并退回轮询模式保证文章不丢失源站 URL 变更自动重订推送中发现源站迁移时会自动向旧 Hub 退订并向新 Hub 重新订阅。在单个订阅的设置页中WebSub 生效的源站会显示「即时通知WebSub」的勾选状态app/views/helpers/feed/update.phtml方便你确认哪些源走的是实时推送。推荐策略实时推送 定时兜底刷新 最佳实践是两者结合WebSub 负责秒级送达定时任务负责兜底。有服务器权限用 cron 定时执行app/actualize_script.php每小时跑一次即可WebSub 源会被智能跳过不会重复拉取无服务器权限使用 Online cron定时访问/i/?cfeedaactualize接口Web 表单认证模式下需配置主认证令牌Token详细刷新方法参考官方文档docs/en/users/09_refreshing_feeds.md 提示轮询刷新最低频率为 15 分钟/次这是 FreshRSS 为保护 RSS 生态生态系统的刻意设计——想要更快那就让 WebSub 来干这件事。常见问题速查QWebSub 没有生效检查data/users/_/log_pshb.txt确认base_url公网可达、p/api/可访问、源站确实声明了 Hub。Q哪些源支持 WebSubFriendica、WordPress、Blogger、Medium 等。可用 Push Tester 或 Livewire 等在线工具逐个测试。Q自建 Hub 可以吗可以。WebSub 是开放协议也可自行部署 Hub 服务或为自建站 CMS 添加 WebSub 通知能力。小结项目说明核心功能新文章秒级推送告别轮询延迟关键配置base_url公网可达 pubsubhubbub_enabled true回调入口p/api/pshb.php状态日志data/users/_/log_pshb.txt官方文档docs/en/users/WebSub.md配置完成后你订阅的每个支持 WebSub 的博客都会在作者点击「发布」的那一秒出现在你的 FreshRSS 里。【免费下载链接】FreshRSSA free, self-hostable news aggregator…项目地址: https://gitcode.com/gh_mirrors/fr/FreshRSS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考