gpt4 book ai didi

java - Spring 中的服务器发送事件客户端示例

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:10 27 4
gpt4 key购买 nike

我们的团队为特定任务开发了服务器发送事件 (SSE)。

我正在尝试构建一个客户端来监听来 self 们服务器的事件流。我已经设法使用 Java 的 Jersey 库来做到这一点。然而,由于我们的大多数客户端代码都使用 Spring,因此我想举一个示例来说明如何使用 Spring 来完成此操作。

我能够在 Spring 服务器端的 SSE 上找到许多示例。但是我找不到客户端的任何文档。

Spring 是否在客户端支持 SSE?如果是,我可以举例说明如何使用 Spring 实现以下目标吗?

向我们的服务器发送 HTTP GET 请求...
获取 -> http://example.com/api/events/
标题 ->
接受:文本/事件流
session key :someString

响应将是一个文本流,客户端将继续接收,直到客户端选择关闭连接。

最佳答案

看一下 Spring RestTemplate 的执行方法之一。它们都将 ResponseExtractor 作为参数。这个回调接口(interface)定义了一个方法:extractData(ClientHttpResponse response)。通过提供你自己的 ResponseExtractor,你可以对响应做你想做的,比如逐行读取。天真的例子:

restTemplate.execute(a_url, HttpMethod.GET, request -> {
}, response -> {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getBody()));
String line;
try {
while ((line = bufferedReader.readLine()) != null) {
System.out.println("Got some data, let's use my ObjectMapper to parse into something useful!");
}
} catch (IOException e) {
//Something clever
}
return response;
});

关于java - Spring 中的服务器发送事件客户端示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082298/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com