向 Spring TcpInboundGateway 发送未经请求的消息

问题描述 投票:0回答:2

我正在使用

IntegrationFlow
编写
TcpInboundGateway
。当客户端连接并建立到服务器(入站网关)的连接时,是否有办法向该连接发送“服务器发起的消息”?我已经知道如何发送“回复”收到的消息。

我读到入站网关可以配置主动消息通道,但在

TcpInboundGateway
类中找不到相关的setter方法。

从版本 5.4 开始,可以使用 unsolicitedMessageChannel 配置入站。未经请求的入站消息以及延迟回复(客户端超时)将发送到此通道。为了在服务器端支持这一点,您现在可以向连接工厂注册多个 TcpSender。网关和通道适配器自动注册。当从服务器发送未经请求的消息时,您必须将适当的 IpHeaders.CONNECTION_ID 添加到发送的消息中。

为此,我需要同时使用

TcpOutboundGateway
吗?

spring-integration spring-integration-ip
2个回答
0
投票

对于服务器发起的消息传递,建议在客户端使用

TcpReceivingChannelAdapter
TcpSendingMessageHandler
的组合。请参阅文档中的一些信息:https://docs.spring.io/spring-integration/docs/current/reference/html/ip.html#ip-collaborating-adapters


0
投票

这是对发布的答案的疑问

我创建了一个客户端连接工厂并在接收通道适配器中使用它 我收到一条错误消息,指出 tcpoutboundgateway 无法再次使用,因为它已用于客户端发起的消息,

我也有同样的要求,客户端发起、发送、接收和处理,但是来自服务器的任何未经请求的消息也需要在客户端接收并为它们发送回复。

© www.soinside.com 2019 - 2024. All rights reserved.