客户端与RESTful Web服务之间的通信

时间:2017-05-24 08:23:53

标签: java web-services rest

我有一个RESTful Web服务,它提供了在客户端发送GET请求时返回一些数据的功能:

    @GET
    @Path("/{deviceId}")
    @Produces(MediaType.TEXT_PLAIN)
    public String getDataResource(@PathParam("deviceId") long id){
        return dataService.getData(id);
    }

此案例的流程将是客户端发送请求 - > Web服务返回值。但是我想问一下,当Web服务内部有新的数据更改时,它可能会自动向客户端发送响应吗?这意味着它不需要等待客户端发送请求来请求它。因为我想在客户端和Application Server上运行的某些服务之间建立通信,以便客户端始终可以从Application Server接收最新数据,所以我认为RESTful Web Service可以作为它的解决方案。并且要确保将最新数据传输到客户端,因此服务器必须发送到客户端,而不是等待客户端请求它。 RESTful Web服务是否提供这样的功能?

谢谢大家!

3 个答案:

答案 0 :(得分:2)

  

RESTful Web服务是否提供这样的功能?

没有。不是在你要求的背景下。

如前所述,客户端可以定期轮询服务器上的更新。这通常是常见的选择。

另一个选项 - 在"客户端"上更新原始服务器发布。然后客户端成为服务器本身。可行,如果您可以在"客户端上公开服务"侧。

也许您正在寻找的是网络套接字。它是来自客户端的持久连接,服务器可以随时返回数据。

有一些books,但您可以在网上搜索更多资源,具体取决于您使用的框架

答案 1 :(得分:0)

您可以实现通知系统(观察者模式),以便客户端在某个时间间隔内轮询服务器并进行任何状态更改,它可以得到结果。

答案 2 :(得分:-2)

您可以使用调度程序以一定的间隔将数据推送到客户端。