Spring集成 - TCP连接客户端 - 从消息

时间:2015-07-21 22:43:41

标签: spring tcp spring-integration host

我知道这是一个类似的问题: Spring Integration. Unknown host and tcp-connection-factory

但是,在我的特定情况下,tcp连接是基于si消息流建立的。我正在写一个" fakes"用户通过tcp / ip连接登录到特定站点。主机/端口每周更改一次,因此我更喜欢动态设置连接。因此,目标服务器的主机/ IP不是静态的。

我仍然想知道除了[动态ftp示例]之外是否有任何方法为每个tcp / ip连接设置一个全新的applicationContext并修改连接工厂,这是非常重要的工作。

我理想的情况是:

<int-ip:tcp-outbound-gateway id="outGateway"
request-channel="input"
reply-channel="clientBytes2StringChannel"
connection-factory="client"
connection-host="#{headers.dest.host}"
connection-port="#{headers.dest.port}"
request-timeout="10000"
reply-timeout="10000"/>


<int-ip:tcp-connection-factory id="client"
type="client"
host="#{headers.dest.host}"
port="#{headers.dest.port}"
single-use="true"
so-timeout="10000"/>

目标主机和端口位于邮件头内。

我知道我的用例很少见,但它在我的特定业务逻辑中非常有用。我的整个webapp基于来自那些原始tcp-ip连接的消息运行。

1 个答案:

答案 0 :(得分:1)

它目前不可能/容易 - 即使您为tcp-connection-factory定制或扩展类以便能够连接到更改的主机。有一个open new feature request in JIRA来提供该功能。 Simillar question here