Ich verwende TcpInBoundGateWay, um Nachrichten von Remote-Clients zu empfangen. Problem ist jedoch, dass Clients ihre IPs in regelmäßigen Abständen ändern.So wenn einer der Clients über IP 'X' kommuniziert, dann hat das Gateway eine Verbindung mit dieser IP, wenn die IP dieses Clients von "X" zu "Y" geändert wird, dann wird eine neue Verbindung mit dieser IP zur selben Zeit hergestellt, zu der die alte Verbindung mit IP 'X' aktiv ist. So, jetzt habe ich etwa 10-15 Client mit diesem Gateway kommunizieren, aber wenn ich tun netstat -all
gibt es als 2000-2500 Verbindung mit diesem Port eingerichtet.TcpInboundGateway: So schließen Sie eine bestehende Verbindung mit dem Remote-Client
Gibt es eine Möglichkeit, so dass ich diese alte Verbindung beenden kann?
@SpringBootApplication
@IntegrationComponentScan
public class SpringIntegrationApplication extends SpringBootServletInitializer{
DataOperations dataOperations =new DataOperations();
@Value("${TCP_PORT}")
private Integer TCP_PORT;
public static void main(String[] args) throws IOException {
ConfigurableApplicationContext ctx = SpringApplication.run(SpringIntegrationApplication.class, args);
System.in.read();
ctx.close();
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringIntegrationApplication.class);
}
private static Class<SpringIntegrationApplication> applicationClass = SpringIntegrationApplication.class;
@Bean
TcpNetServerConnectionFactory cf(){
TcpNetServerConnectionFactory connectionFactory=new TcpNetServerConnectionFactory(8765);
connectionFactory.setSingleUse(true);
return new TcpNetServerConnectionFactory(TCP_PORT);
}
@Bean
TcpInboundGateway tcpGate(){
TcpInboundGateway gateway=new TcpInboundGateway();
gateway.setConnectionFactory(cf());
gateway.setRequestChannel(requestChannel());
gateway.setRequestTimeout(20000);
return gateway;
}
@Bean
public MessageChannel requestChannel(){
return new DirectChannel();
}
}
Liste der Verbindung von netstat
commnd
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 106.221.201.180:15076 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.41.100:41965 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 106.221.136.178:39192 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 106.221.135.124:2271 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.57.252:31644 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.33.219:32134 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 106.221.218.22:17275 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.172.42:30130 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.21.127:16998 ESTABLISHED
tcp6 0 0 ip-XXX-XX-X-XXX.u:10189 27.58.60.160:51374 ESTABLISHED
ok ... lassen Sie mich mit Ihrem Fix überprüfen. – MasterCode
gibt es eine benutzerdefinierte Möglichkeit, bestimmte Verbindung zu beenden – MasterCode
Die Verbindungsfactory hat eine Methode (siehe die Bearbeitung meiner Antwort). –