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 订阅者与发布者和集线器之间的交互。
以下是上图所示序列的说明。
(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