通过 ISO TCP/RFC 1006 的 TCP 消息

TCP messages over ISO TCP/RFC 1006

我有一个 Spring 通过注释配置的集成项目,具有以下与 TCP 相关的配置:

@Bean
public TcpReceivingChannelAdapter tcpIn(AbstractClientConnectionFactory connectionFactory) {
    TcpReceivingChannelAdapter receiver = new TcpReceivingChannelAdapter();
    receiver.setOutputChannel(fromTcpReceiver());
    receiver.setConnectionFactory(connectionFactory);
    return receiver;
}

@Bean
public AbstractClientConnectionFactory clientFactory() {
    TcpNetClientConnectionFactory factory = new TcpNetClientConnectionFactory(host, port);
    factory.setSoKeepAlive(keepAlive);
    factory.setSoTimeout(timeout);
    return factory;
}

@Bean
public TcpSendingMessageHandler tcpOut(AbstractClientConnectionFactory connectionFactory) {     
    TcpSendingMessageHandler sender = new TcpSendingMessageHandler();
    sender.setConnectionFactory(connectionFactory);
    return sender;
}

在 Spring 集成中,通过 ISO TCP/RFC 1006 封装 TCP 消息的最佳方法是什么?

基本上,TCP ISO 向初始连接添加了一个步骤,但也向每个 sent/received TCP 消息添加了一个额外的 header。

我正在阅读文档,但我不知道这种消息丰富和协商的最佳方式是什么。 Spring 集成是否可行?

我有 3 个想法:

欢迎任何help/example

我没有看过 RFC,但您可能需要自定义 serializer/deserializer 以及自定义 TcpMessageMapper 的组合来映射 header(s) to/from Spring 集成消息 header(s).

看一下 MessageConvertingTcpMessageMapper 的例子。