繁体   English   中英

如何在不使用 Controller 的情况下将数据从后端 Springboot 发送到客户端前端?

[英]How to send data from backend Springboot to client frontend without the use of a Controller?

该项目的概述是这样的:

  1. 通过端点将文件上传到 Springboot 服务器
  2. 端点在收到文件时发送OK响应,但继续在后台处理文件,对文件运行测试。

因此,由于 controller 的端点已经返回了响应,我如何在使用 Controller 之外将信息从后端发送到前端。

这是 Controller 返回响应后运行的内容:

     CompletableFuture.runAsync(() -> {
            int count = 0;
            boolean stillProcessing = true;
            while (stillProcessing) {
                stillProcessing = !test.isTestComplete();
                if (test.getNumberOfInstancesComplete() > count) {
                    count = test.getNumberOfInstancesComplete();
                    log.info("{}/{} instances completed so far", count, test.getInstances().size());
                }
            }
        });

log.info行是我需要返回到前端 React 方面的内容。

最终目标是基本上使用log.info()中打印的值向用户显示加载栏。

您可以在没有 controller 的情况下使用 websockets 通知前端。 这是随时使用 STOMP 从后端向客户端发送消息的示例代码。

@Component
public class PushMessage {

  @Autowired
  SimpMessagingTemplate simpMessagingTemplate;


  public <T> void invokeWebSocketEndpoint(String endpoint, T payload) {
    this.simpMessagingTemplate.convertAndSend(endpoint, payload);
  }

}

有关 STOMP websockets 的更多信息,请查看此链接https://spring.io/guides/gs/messaging-stomp-websocket/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM