Java 使用SpringTCP连接工厂进行流式处理

Java 使用SpringTCP连接工厂进行流式处理,java,spring,sockets,tcp,integration,Java,Spring,Sockets,Tcp,Integration,我有以下用例: 服务器在特定端口上侦听新套接字连接 客户端打开服务器套接字连接,并开始流式传输输入流 服务器接受连接并实时处理输入流 我使用Spring Boot(部署在tomcat上)为单个套接字实现了它,代码如下: try (ServerSocket serverSocket = new ServerSocket(6666)) { if (serverSocket.isBound()) { Socket client = serverSocket.

我有以下用例:

  • 服务器在特定端口上侦听新套接字连接
  • 客户端打开服务器套接字连接,并开始流式传输输入流
  • 服务器接受连接并实时处理输入流
我使用Spring Boot(部署在tomcat上)为单个套接字实现了它,代码如下:

try (ServerSocket serverSocket = new ServerSocket(6666)) {
        if (serverSocket.isBound()) {
            Socket client = serverSocket.accept();
            doSomething(client.getInputStream());               
        }
    }
现在,我希望能够以干净的方式处理多个客户端连接。我想我可以使用SpringIntegration的TCP连接工厂来完成这项工作,但我想我完全错过了消息传递部分,因为在我的用例中,我没有发送任何消息,而是发送一个普通流,这不会工作,对吗?通过此设置,我从客户端收到数百条消息,而不是一条流:

@Bean
public AbstractServerConnectionFactory serverCF() {
    TcpNetServerConnectionFactory connFactory = new TcpNetServerConnectionFactory(port);
    connFactory.setDeserializer(new SpeechSocketDeserializer());
    connFactory.setSingleUse(true);
    return connFactory;
}

@Bean
public TcpInboundGateway tcpInGate(AbstractServerConnectionFactory connectionFactory) {
    TcpInboundGateway inGate = new TcpInboundGateway();
    inGate.setConnectionFactory(connectionFactory);
    inGate.setRequestChannel(fromTcp());
    return inGate;
}

@Bean
public MessageChannel fromTcp() {
    return new DirectChannel();
}
您能建议在服务器端实现多个套接字连接处理的最佳方式吗?我可以使用一些Spring功能/框架吗?

您可能想看看这里:您可能想看看这里: