Spring 集成提供非反应性入站/出站 WebSocket 适配器,简单地说,通过内部容器将会话与 ID 关联,您对消息进行一些处理,在出站时,它会检查会话 ID 的消息头,并通过该会话发送它。现在,随着 Spring 通过 org.springframework.web.reactive.socket.WebSocketSession 和其他类提供反应式 WebSocket 支持,我想知道在反应式 WebSocket 堆栈的通道适配器方面有类似的支持。如果没有,是否有任何常见的模式/实践,如何将反应式 WS 与弹簧集成消息流集成?
2 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
这个功能还没有被调用,所以我们还没有考虑这个问题。
请看看我的SandBox。这是我能根据当前情况提出的最佳建议。
我们只是按照标准的 Spring WebFlux 建议来实现 WebSockets 解决方案。因此,我们有一个WebSocketHandler
带有适当 URL 映射的实现。实现只是转发一个Flux
从session.receive()
进入IntegrationFlow
动态注册。然后将流转换Publisher
为用于session.send()
.
我相信可以使用许多其他方法,例如使用FluxMessageChannel
bean 和它subscribeTo()
来自这个handle(WebSocketSession)
impl 来桥接Flux
预定义的集成流。或者@MessagingGateway
从doOnNext()
.
不过,不确定是否session.send()
可以在下游独立使用(需要播放),但您可以在示例中看到我如何将 a 传播WebSocketSession
到MessageHeaders
以在集成流中访问它。
添加回答
举报
0/150
提交
取消