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

Spring集成和反应WebSockets

益锦程
2023-03-14

Spring integration提供了非反应的入站/出站WebSocket适配器,简单地说,它通过内部容器将会话与id相关联,您对消息进行一些处理,在出站时,它检查消息头是否有会话id,并通过该会话发送。

现在,Spring通过org.springframework.web.reactive.socket.WebSocketSession和其他类提供了反应性WebSocket支持,我想知道在反应性WebSocket堆栈的通道适配器方面也有类似的支持。

如果没有,是否有任何共同的模式/实践,如何将反应性WS与spring-integration消息流集成在一起?

共有1个答案

张淳
2023-03-14

这个特性还没有被调用,所以我们还没有想过这件事。

拜托,看看我的沙箱。这是我就目前的情况所能提出的最好的建议。

我们只是遵循标准的Spring WebFlux建议来实现WebSockets解决方案。因此,我们有一个WebSocketHandler实现,它具有适当的URL映射。实现只需将session.receive()中的flux转发到动态注册的IntegrationFlow中。然后,该流转换为用于会话.send()的反应性发布服务器

但是,不确定session.send()是否可以独立地在下游使用(需要播放),但是您可以在示例中看到我如何将WebSocketSession传播到MessageHeaders中,以便在集成流中给予它访问权。

 类似资料:
  • 作为项目Reactor的用户,也想使用Spring集成,我想执行以下操作,这将以这样的方式工作: 一开始,我认为解决方案是执行以下错误代码: 当然,由于问题,它无法工作。我想知道如何一个接一个地执行操作(例如,在CockroachDB写入完成之前不要继续脉冲星写入,如果第一次操作失败,请停止这些消息的流)。 我正在考虑使用Spring集成事务支持,但我担心它在Retor中的使用。 我还看到有一种叫

  • 问题内容: 我想使用Spring Batch和Spring Integration从数据库导入数据,并将它们写入文件,然后通过ftp将其传输到远程服务器。 但是我想我的问题是我不想为我的表创建域对象。我的查询是随机的,我想要一些可以读取数据并将其写入文件并进行传输的东西。 是否可以在不创建各自的域对象的情况下使用Spring Batch和Integration? 问题答案: 绝对。您可以将JDBC

  • Spring是一个流行的Web框架,它提供易于集成与很多常见的网络任务。所以,问题是,为什么我们需要Spring,当我们有Struts2?Spring是超过一个MVC框架 - 它提供了许多其它好用的东西,这是不是在Struts。例如:依赖注入可以是有用的任何框架。在本章中,我们将通过一个简单的例子来看看如何集成Spring和Struts2一起。 首先,需要添加下列文件到项目的构建路径从Spring

  • 我正在尝试使用几个s-vaadin、jsp等实现一个应用程序。 它使用简单的,但后来我决定使用vaadin作为ui。 我创建了vaadin servlet(Spring的servlet也留下了)。我的看起来像这样 我创建了vaadin组件并根据我的需要对其进行了调整。我使用自动装配进行服务。 也是一个Spring bean。 < code>ProjectRepository是另一个spring b

  • 让spring集成应用程序具有入站http网关和出站http网关,在我想要缓存的两个网关之间,以避免不必要的请求。我唯一的解决方案是在它之后添加带缓存的拦截器和路由器,将cahced结果路由回回复通道,而非缓存的路由回出站,但这个解决方案对我来说似乎很棘手和丑陋。当入站网关具有相同的请求和应答通道时,带缓存的拦截器也可以正常工作(当返回具有相同标头但不同负载的新消息时,它被视为应答),但我不能使用

  • 我正在使用一个Spring Boot+Spring Security OAuth2应用程序,我相信它的灵感来自Dave Syer的示例。应用程序被配置为OAuth2授权服务器,具有使用资源所有者密码凭据流的单个公共客户端。成功的令牌被配置为JWT。 公共Angular客户机向/oauth/token发送一个POST请求,该请求带有包含客户机id和秘密的基本身份验证头(这是让客户机进行身份验证的最简