对于最新的稳定版本,请使用 Spring Integration 6.4.0spring-doc.cn

TCP 连接事件

从版本 3.0 开始,对实例的更改由实例报告。 是 的子类,因此可以由 中定义的 、 或方法中的任何 () 接收。 另请参阅事件入站通道适配器TcpConnectionTcpConnectionEventTcpConnectionEventApplicationEventApplicationListenerApplicationContext@EventListenerspring-doc.cn

TcpConnectionEvents具有以下属性:spring-doc.cn

  • connectionId:连接标识符,您可以在消息标头中使用该标识符将数据发送到连接。spring-doc.cn

  • connectionFactoryName:连接所属的连接工厂的 Bean 名称。spring-doc.cn

  • throwable:(仅适用于事件)。ThrowableTcpConnectionExceptionEventspring-doc.cn

  • source:这。 例如,您可以使用它来确定远程 IP 地址 (cast required)。TcpConnectiongetHostAddress()spring-doc.cn

与特定连接相关的可用 包括:TcpConnectionEventspring-doc.cn

此外,从 4.0 版本开始,TCP Connection Factories 中讨论的标准反序列化器现在在解码数据流时遇到问题时会发出实例。 这些事件包含异常、正在构建的缓冲区,以及在发生异常的点进入缓冲区的偏移量(如果可用)。 应用程序可以使用 normal 、 method 或 (请参阅 Receiving Spring Application Events) 来捕获这些事件,从而允许分析问题。TcpDeserializationExceptionEventApplicationListener@EventListenerApplicationEventListeningMessageProducerspring-doc.cn

从版本 4.0.7 和 4.1.3 开始,每当服务器套接字上发生意外异常时(例如,当服务器套接字正在使用时),都会发布实例。 这些事件引用了连接工厂和原因。TcpConnectionServerExceptionEventBindExceptionspring-doc.cn

从版本 4.2 开始,每当端点(入站网关或协作出站通道适配器)收到由于 Headers 无效而无法路由到连接的消息时,都会发布实例。 出站网关也会在收到延迟回复(发送方线程已超时)时发布此事件。 该事件包含连接 ID 以及属性中的异常,其中包含失败的消息。TcpConnectionFailedCorrelationEventip_connectionIdcausespring-doc.cn

从版本 4.3 开始,当启动服务器连接工厂时,会发出 a。 当工厂配置为侦听 port 时,这很有用,这意味着操作系统选择端口。 如果您需要在启动连接到套接字的其他进程之前等待,也可以使用它代替 polling 。TcpConnectionServerListeningEvent0isListening()spring-doc.cn

为了避免延迟侦听线程接受连接,该事件将在单独的线程上发布。

从版本 4.3.2 开始,每当无法创建 Client 端连接时,都会发出 a。 事件的来源是连接工厂,您可以使用它来确定无法建立连接的主机和端口。TcpConnectionFailedEventspring-doc.cn

要使用单个(或方法)接收所有这些事件(包括 s),请将侦听器配置为接收 s。ApplicationListener@EventListenerTcpConnectionEventIpIntegrationEventspring-doc.cn