如何将客户端连接到多个服务器套接字?

How to connect a client to multiple server sockets?

我正在 spring-integration 使用以下组件将客户端连接到服务器 socket

DirectChannel
TcpConnectionFactoryFactoryBean
TcpOutboundGateway
@MessagingGateway

问题:TcpConnectionFactoryFactoryBean 绑定到特定的套接字端口。我想将客户端连接到多个服务器套接字。

我怎样才能做到这一点?这可能吗?

TCP 连接绑定到以下参数:

  • 源地址
  • 源端口
  • 远程地址
  • 远程端口

我认为它不打算提供通过一个套接字创建一对多连接的可能性,因为这违反了 TCP 定义。

Wiki-Article for TCP

因此解决方案是创建多个套接字,每个套接字保持一个到不同服务器的连接。

正确。每个 server/port.

都需要一个单独的连接工厂

目前 Spring 集成中没有任何机制可以为每条消息动态 select 一个 TCP host/port。

这样的机制可能需要缓存连接以避免必须为每个请求打开一个新的套接字。请随意打开一个新功能 JIRA 问题,我们会在未来的版本中考虑它。