如何在基于REST的Web服务中实现异步请求响应

发布于 2024-09-14 07:10:37 字数 335 浏览 5 评论 0原文

我有一个基于 REST 的 Web 服务系统。我需要在这里找到一种支持发布/订阅模型的方法。如您所知,REST 客户端和服务器之间的通信是 HTTP 协议。我在后端使用 apache (PHP) Web 服务器来处理所有 REST 请求。问题是如何使用 PHP 或其他东西(在 Web 服务器端)来支持这种 Pub/Sub 模型。一种典型的场景是:

1) 客户端订阅对象的更改 (GET /config/object/?type=async) 2) 客户端不会阻止此请求,因为它是异步调用。 3) 服务器接受订阅并等待事件。 4) 当事件发生时,服务器向客户端发布所需的数据。

我基本上需要知道如何实现上述所有这四个步骤。

I have a REST based web service system. I need to find a way to support publish/subscribe model here. As you know REST the communication between client and server is HTTP protocol. I use apache (PHP) web server in the backend to server all REST requests. The question is how to use PHP or whatever (in the web server side) to support this kind of Pub/Sub model. One typical scenario would be:

1) Client subscribes for a change in an object (GET /config/object/?type=async)
2) Client does not block with this request as it is async call.
3) Server accept the subscription and waits for the event.
4) Server publishes the client with the required data as and when the event happens.

I basically need to know how to implement all of these four steps above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云醉月微眠 2024-09-21 07:10:37

您可能正在寻找类似 PubSubHubbub 的内容 -

http://code.google.com/apis/pubsubhubbub/

让 PubSub 为您实现中心意味着您不需要阻止对服务器的调用。

他们已经用不同的语言实现了示例订阅者和发布者。

You are probably looking for something like PubSubHubbub -

http://code.google.com/apis/pubsubhubbub/

Letting PubSub implement the hub for you means you don't need blocking calls to the server.

They already have implemented example Subscribers and Publishers in different languages.

冷︶言冷语的世界 2024-09-21 07:10:37

如果还没有读过,您应该阅读 Roy Fielding 对各种 PubSub 方法的看法。 http://roy.gbiv.com/untangled/2008/纸老虎藏龙

If haven't already, you should read Roy Fielding's take on the various approaches to PubSub. http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文