我想知道在 spring 集成中是否可以在流中包含一个外部通道。所以我有http入站网关流,在它被触发后,它应该通过udp端口与其他进程通信。我最关心的是如何从这个流中的 udp 端口接收消息。
@Bean
public IntegrationFlow httpInboundGatewayFlow() {
return IntegrationFlows.from(Http.inboundGateway(httpInboundPath))
.transform(niUdpRequestTransformer())
/*sending a message to udp port*/
.publishSubscribeChannel(runnable -> runnable
.subscribe(flow -> flow
.handle(udpOutboundChannel())))
/*wait for input from udpResponse channel here (HOW TO?)*/
/*process udpInboundFlow message*/
.handle((payload, headers) -> successNetworkResponse())))
.transform(new ObjectToJsonTransformer())
.handle((payload, headers) -> payload)
.get();
}
@Bean
public IntegrationFlow udpInboundFlow() {
return IntegrationFlows.from(udpInboundChannel())
.transform(niUdpResponseTransformer())
.channel("udpResponse")
.get();
}
使用 udpInboundFlow 应该作为某种轮询器来实现,它检查是否有正确的消息到达。
谢谢你的帮助。