如何在 Spring Boot 中收听流式 API?

Posted

技术标签:

【中文标题】如何在 Spring Boot 中收听流式 API?【英文标题】:How to listen to a streaming API in Spring Boot? 【发布时间】:2021-01-13 00:25:10 【问题描述】:

我正在 Spring Boot 中制作中间件。有一个 API 有一个流数据的端点。我必须监听该数据并在中间件中公开一个端点,该端点将流数据从我的中间件传递到前端。所以,整个过程就是这样,前端会向我的中间件发出请求。我的中间件将打开到流式 API 端点的持久连接,无论数据 API 返回什么,中间件都会将其传递给前端。

我的主要问题是我无法弄清楚如何在我的 Spring Boot 中间件中完美收听流式 API。我们将使用什么? 网络套接字?网络客户端?以及如何?

有人可以用基本的示例代码给出一个基本的想法吗?

【问题讨论】:

【参考方案1】:

我得到了答案。 我们可以使用 WebClient 和 Flux 来获取流数据。

开始流式传输:

  private final WebClient webClient = WebClient.create();

  public Flux<String> startStreaming() 
    return webClient.get()
            .uri("STREAMING API END POINT")
            .header("Authorization","Bearer "+Key.BearerToken)
            .retrieve()
            .bodyToFlux(String.class); ///String.class or any other custom model class can be used.

【讨论】:

以上是关于如何在 Spring Boot 中收听流式 API?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot的特性:SpringApplication流式构建API

如何使用 Spring Boot 流式传输音频

用于收听和捕获流式音频的 Chrome 扩展程序

如何在 Spring-Boot 项目中为电话号码身份验证创建 REST API?

如何从另一个新的 Spring Boot 项目调用一个 Spring Boot 项目中存在的 Spring Boot api

来自 UI 的 Websocket 连接到 Spring Boot 应用程序的实例之一,用于流式传输队列中的数据