WebSub是一种能够实时通知内容更新的协议。它基于发布者/订阅者模式,即发布者发布内容更新,订阅者接收这些更新。WebSub 允许以分散和可扩展的方式进行通信。
在 WebSub 之前,发布者必须依赖轮询,即订阅者定期检查发布者的服务器是否有更新。这种方法会耗费大量资源,尤其是对于拥有大量订阅者的发布者而言。WebSub 提供了一种更有效的替代方法,它允许订阅者实时接收更新,而无需不断轮询。
WebSub包含3个主要角色:
- 发布者:更新
topic
内容的人 - 订阅者:注册接收
topic
更新的人 - Hub:发布者和订阅者之间的中介
发布者和Hub
发布者和 Hub 之间的关系很简单。发布者在资源 URL 中公布一个 Hub 和一个topic
。订阅者可以通过向该资源 URL 发送请求来识别topic
和topic
所在的 Hub。
当某个topic
有内容更新时,发布者会通知 Hub,然后 Hub 会通知订阅者。
订阅者和中心
WebSub 订阅者订阅发布者在特定 Hub 上发布的topic
广告。下图描述了 WebSub 订阅者与发布者和集线器之间的交互。
![WebSub 是什么?(WebSub入门系列一)](https://www.nxrte.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
以下是上图所示序列的说明。
(1)订阅者发现发布者的topic
所传的Hub。
(2)订阅者向 Hub 发出 HTTP POST 请求,以订阅有关topic
的更新。
(3)Hub通过 HTTP GET 请求验证订阅尝试。
(4)发布者将新内容通知 Hub。
(5)Hub 向订阅者端点发出 HTTP POST 请求,将topic
内容发送给每个订阅者。
序列 (1)、(2) 和 (3) 与订阅流程有关。序列 (4) 和 (5) 描述了topic
更新时的内容分发流程。
注:订阅者只有在订阅尝试通过 Hub 验证后才会收到topic
的内容更新。
WebSub 主要特征
- 可扩展:可使用 Hub 处理大量的发布者和订阅者,Hub 充当发布者和订阅者之间的中介。
- 实时:可向订阅者实时通知内容更新。
- 灵活:可用于从新闻和媒体到 API 集成和物联网等各种用例。
WebSub 用例
- 新闻和媒体:可用于提供新闻和媒体内容的实时更新,使订阅者能够及时了解突发新闻和事件。
- 社交媒体:可用于提供社交媒体内容的实时通知,例如点赞、评论和分享。
- API 集成:通过提供基于 HTTP 的发布者/订阅者模型,可用于简化反应式微服务之间的 API 集成。
- 物联网:可用于为物联网设备提供实时更新,允许订阅者实时监控和控制设备。
总之,WebSub是一种简单但功能强大的协议,可实现实时内容联合和通知。它提供了一种可扩展的内容更新方法,允许发布者实时通知订阅者,而无需不断轮询。WebSub 具有多种用例,从新闻和媒体到 API 集成和物联网。凭借其高效且可扩展的内容更新方法,WebSub 必将在未来的实时通信中发挥重要作用。
参考
https://www.w3.org/TR/websub/
https://aly.com/topic/websub
https://nordicapis.com/websub-common-cases-and-implementations/
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/im/30290.html