首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用RESTful web服务创建异步通知系统?

如何使用RESTful web服务创建异步通知系统?
EN

Stack Overflow用户
提问于 2009-07-07 18:13:49
回答 4查看 20.8K关注 0票数 18

我有一个通过RESTful web服务提供的Java应用程序。我想创建一种机制,这样客户端就可以注册事件通知。问题在于,不能保证客户端程序将是Java程序,因此我无法使用JMS (即,如果每个客户端都是Java应用程序,那么我们可以允许客户端订阅JMS主题并在那里侦听通知消息)。

用例大致如下:

  1. 客户端通过RESTful web服务调用向我的服务器应用程序注册自己,表明它有兴趣在任何时候更新特定对象时获得通知消息。
  2. 当感兴趣的对象更新时,我的服务器应用程序需要向所有有兴趣接收此事件通知的客户端发出通知。

如上所述,我知道如果所有客户端都是Java应用程序,我将如何做--设置一个客户端可以监听通知消息的主题。但是,我不能使用这种方法,因为很多客户端可能无法侦听通知消息的JMS主题。

在座的各位能告诉我这个问题通常是如何解决的吗?使用RESTful接口可以提供什么机制?

EN

回答 4

Stack Overflow用户

发布于 2009-07-07 18:28:48

我可以想到四种方法:

Twitter方法:注册客户端,然后它使用GET定期回调,以检索任何notifications.

  • The客户端。
  1. 描述了在发出注册请求时它希望如何接收通知。这样,您就可以允许那些能够处理它的客户端使用JMS,而对于那些不能处理它的客户端,您可以退回到电子邮件或类似的服务。
  2. 在注册请求期间获取一个URL,并在收到通知时分别回发给每个客户端。几乎不是Pub/Sub,但效果会是相似的。当然,您可能会假设客户端正在侦听这些通知,并且已经根据您的规范实现了客户端。
  3. Buy IBM WebSphere MQ (MQSeries)。有史以来最好的IBM产品。虽然不是REST,但它在像这样的多平台集成方面非常出色。
票数 9
EN

Stack Overflow用户

发布于 2009-10-13 21:20:59

我们有这个问题,需要对相对较少的监听器进行低延迟异步更新。我们的两个替代解决方案是:

  1. Polling:使用GET requests
  2. Streaming event updates获取所需的资源列表:提供监视器资源。服务器使连接保持打开状态。当事件发生时,服务器使用多部分内容类型或分块的transfer-encoding.

传输事件描述流

票数 4
EN

Stack Overflow用户

发布于 2009-07-07 18:29:26

在对RESTful请求的响应中,您可以提供一个个性化的RESTful URL,客户端可以监视该URL是否有更新。

也就是说,您有一个URL (比方说/Signup.htm),它接受客户机的信息(id,如果合适,则为要监视的对象的id )并返回一个定制的url (/Monitor/ XYZPDQ ),其中XYZPDQ是为该特定客户机创建的UUID。客户端可以以一定的时间间隔轮询定制的URL,如果发生更新,它将收到通知。

如果您不关心客户端是谁(也不想创建如此多的UUID),那么您可以为每个可能想要监视的对象使用单独的RESTful URL,“注册”URL只会返回正确的URL。

正如John Saunders所说,您无法通过HTTP进行更直接的发布/订阅。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1093900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档