【问题标题】:RESTful Webservice with Jersey in Java and observer patternRESTful Webservice with Jersey in Java 和观察者模式
【发布时间】:2014-03-31 12:46:02
【问题描述】:
我正在尝试为一个学校项目实施一个 n 层架构应用程序。
客户端和服务器之间的通信是通过 RESTful Web 服务完成的。
我使用 Jersey 在 Java 中实现了这一点。我唯一的问题是,如何在服务器上注册客户端以接收更改通知(就像通常使用观察者模式或侦听/发布模式一样)。我是否还需要在客户端实现一个服务,然后注册要由服务器调用的 URL,然后在发生更改时调用这些 URL?
感谢您的帮助!
【问题讨论】:
标签:
java
web-services
rest
jersey
observer-pattern
【解决方案1】:
通常,在基于 http 的 client-server 方案中,服务器总是响应请求。没有客户端请求,服务器无法发送任何内容(通知)。但是有些用例是服务器在没有客户端请求的情况下将数据推送到客户端,因此 Server-Push 出现了。
Jersey 以Server-Sent Events (SSE) 的形式提供Server Push。文档说,
服务器发送事件 (SSE) 是一种机制,允许服务器
将数据从服务器异步推送到客户端
客户端-服务器连接由客户端建立
请注意,客户端需要首先与服务器建立连接。您可以将第一个客户端请求称为注册。一旦建立连接,服务器就可以向客户端发送/推送数据。链接的提及也有一个工作示例。