当前位置: 首页 > 知识库问答 >
问题:

如何在SpringWebFlux反应式WebSocket中发送列表

谯英彦
2023-03-14

我正在使用SpringWebSockets,我想从存储库返回一个项目列表

 List<Items> nameList = itemsService.getItems ();

我怎么能在WebSocket会话中发送此列表

 public Mono<Void> handle(WebSocketSession webSocketSession) {
        System.out.println (webSocketSession.getId () + "sessionId" );
        List<Items> nameList = itemsService.getItems ();
        Flux<Items> output = Flux.fromIterable (nameList);
        Mono<Void> send = webSocketSession.
                send (output.map ((Items s) -> webSocketSession.binaryMessage (s)));
        return send;

这是如何将项目列表发送到websocket的处理程序方法

共有1个答案

傅花蜂
2023-03-14
Flux<Items> flux = Flux.fromIterable (nameList);
        Flux<WebSocketMessage> webSocketMessageFlux = flux
                .map(itm ->convertIemsToString(itm)).map (item -> webSocketSession.textMessage (item));


        return webSocketSession.send (webSocketMessageFlux);

所以首先我将List转换为通量,然后将其转换为webSocketMessage,然后将webSocketMessage消息发送到sesision,在那里它将被推送到客户端

 类似资料:
  • 问题内容: 我正在使用spring-webflux WebClient (内部版本20170502.221452-172)访问Web应用程序,该Web应用程序生成Entry对象流(application / stream + json),如下所示: 尽管Entry对象的反序列化对于使用标准通用类型(包括Java时间(JSR-310)数据类型,如java.time.Instant)的POJO都可以正

  • 我正在使用spring-webflux WebClient(build 20170502.221452-172)访问一个Web应用程序,该应用程序生成一个条目对象流(application/stream+JSON),如下所示: 虽然条目对象的反序列化对于使用标准通用类型(包括Java.time.instant等Java time(JSR-310)数据类型)的POJO很好,但我想知道,为了将任何自定

  • 应用程序: 接收以下有效负载: 我需要按以下方式进行处理: > 使用转换后的数据向“卡通数据库”微服务发送HTTP POST请求。 我遇到的问题是: 我需要使用(|)和)的

  • 我试图让服务器发送的事件与Mozilla Firefox一起工作。给定一个Spring Boot的网络服务 使用Chrome浏览器或Edge(始终是最新版本)可以正常工作。我可以在网络分析器选项卡中看到未完成的请求,并且每秒都会显示一个新的时间戳。 然而,当我使用Firefox(84.0.2或更早版本)时,请求也会显示在网络选项卡中,但不会显示响应头或流数据。当我终止Spring后端时,Firef

  • 看起来像Spring webflow客户端的json配置示例: 与这个问题相同,但适用于jaxb xml序列化。有JAXB和xml的解码器实现吗?是否可以使用HttpMessageConverter作为webclient的解码器,以使Spring boot控制器和客户端实现一致?

  • 我正在使用Spring Boot2.1.3开始使用reactive websockets。我创建了一个实现,如下所示: 但是,我想对来自websocket的请求作出反应,告诉我想要的数据的id是什么。我设法获得了这样的请求信息: 现在我不知道如何结合这两个实现? 我希望能做这样的事情: 但这只是立即断开websocket客户机而不做任何事情。