【问题标题】:How to connect a client to multiple server sockets?如何将客户端连接到多个服务器套接字?
【发布时间】:2015-06-13 03:19:21
【问题描述】:
我正在使用spring-integration 使用以下组件将客户端连接到服务器socket:
DirectChannel
TcpConnectionFactoryFactoryBean
TcpOutboundGateway
@MessagingGateway
问题:TcpConnectionFactoryFactoryBean 绑定到特定的套接字端口。我想将客户端连接到多个服务器套接字。
我怎样才能做到这一点?这可能吗?
【问题讨论】:
标签:
java
spring
sockets
spring-integration
【解决方案1】:
TCP 连接绑定以下参数:
我认为它不是为了提供通过一个套接字创建一对多连接的可能性,因为这违反了 TCP 定义。
Wiki-Article for TCP
因此解决方案是创建多个套接字,每个套接字都有一个到不同服务器的连接。
【解决方案2】:
正确。每个服务器/端口都需要一个单独的连接工厂。
目前 Spring Integration 中没有任何机制可以为每条消息动态选择 TCP 主机/端口。
这种机制可能需要缓存连接以避免必须为每个请求打开一个新套接字。随意打开一个新功能 JIRA 问题,我们会在未来的版本中考虑它。