我正在开发一个支持Spring Integration的TCP连接的Web应用程序。 它有两个功能。
(服务器上的应用程序不是由Spring Integration开发的。)
在这种情况下,应该使用TCP适配器,我需要提供协作TCP出站和入站通道适配器。 但是,我的申请有一些限制。
因此,我认为协作TCP出站和入站通道适配器很困难。然后,我计划扩展TCP Outbound网关以添加仅接收消息功能。 我应该如何延长它? (或者您有其他想法吗?)
提前致谢。
答案 0 :(得分:0)
如果您可以确定消息类型,那么这样的事情应该有效......
public class ExtendedTcpOutpboundGateway extends TcpOutboundGateway {
private final MessageChannel unsolicitedMessageChannel;
public ExtendedTcpOutpboundGateway(MessageChannel unsolicitedMessageChannel) {
this.unsolicitedMessageChannel = unsolicitedMessageChannel;
}
@Override
public boolean onMessage(Message<?> message) {
if (isUnsolicitedMessage(message)) {
this.messagingTemplate.send(this.unsolicitedMessageChannel, message);
return false;
}
else {
return super.onMessage(message);
}
}
private boolean isUnsolicitedMessage(Message<?> message) {
// TODO Add logic here to determine message type
return false;
}
}
如果你无法区分,那么你不清楚如何实现你的要求。