我们正在使用spring-integration进行TCP通信,并看到在该连接上的消息之前收到TcpConnectionCloseEvent的行为。这是一个问题,因为我们正在使用TCP事件来跟踪连接等,当我们需要在我们认为已关闭的连接上接受消息时,它会导致更加复杂的场景。反之亦然-有时我们会收到一条连接消息,但我们还不知道该连接已打开。有什么方法可以确保这些事件的正确顺序,即使它们本质上是异步的?(感谢您在stackoverflow上的精彩回答,Gary)。 最佳答案 嗯...在服务器端,打开事件是由接受新连接的线程而不是连接本身发
我正在尝试使用SpringIntegration连接到不稳定网络上的大量设备(500-1000),但我遇到了10个任务调度程序的默认池阻止尝试连接到不是的设备的问题目前可用。我的实现基于动态FTP示例,为每个具有客户端tcp连接工厂和tcp入站适配器的远程设备创建一个新的子应用程序上下文,消息路由到根上下文的流中。我遇到的问题是,快速连接这些设备很重要,但其中大量设备可能随时离线。所有连接似乎都被发送到一个包含10个成员的任务调度程序池,并最终阻塞连接调用,导致连接到列表下方在线设备的大量延迟。所以我的问题是,有没有办法使用spring集成实现非阻塞连接调用?
我正在扩展ByteArrayLengthHeaderSerializer以返回来自tcp消息头的长度。问题是套接字上的第一条消息包含一个没有header的8字节session。在第一条消息之后,所有消息都会有一个带有长度的header(以及其他一些字段)。header的前4个字节将始终是一个常量值。我想读取前4个字节以确定我是否收到带有header或原始sessionId的消息。如果不是header,那么我会推回4个字节并返回8的长度。如果它是一个header(前4个字节与常量值匹配),那么我将读取header的其余部分,找到header中的长度字段并返回该值。此外,此应用程序可能正在
我们正在使用Spring集成4.1.3。使用tcp-outbound-gateway实现客户端。在请求过程中从服务器收到一个tcprset数据包,发生异常。是什么原因?谢谢。//interfacepublicinterfaceTcpSendGateway{publicbyte[]send(Stringtext);}//sendbyte[]response=sendGateway.send(request);错误日志▶17.09.2917:07:37[pool-2-thread-2]ERRORo.s.i.i.t.c.TcpNetConnection-Readexception211.59
我正在尝试使用org.springframework.integration.ip.tcp.connection.CachingClientConnectionFactory创建一个TCP客户端。当工厂创建TCP连接时,我需要向服务器发送一些数据,例如授权。服务器发送了一些数据作为响应(例如salt)。在下一个请求中,需要向服务器发送salt。Pool中所有连接的salt必须不同,我认为Connection必须自己存储salt。所以,我的实现是...SpringBeansXML:TCP连接拦截器:packageru.example.gateway;importlombok.Getter
我无法清楚地理解如何在SpringIntegration中读取TCP流。我有一个外部服务,它向连接到它的客户端(TCP、Java套接字)广播一些数据。我已经在SpringIntegration中尝试过很多配置。我的应用程序成功连接到我的外部服务(我可以从服务的日志中确认),但我仍然无法捕获流。但是,当我手动向服务发送一些消息(通过MessageChannel)时,我的bean可以正常工作。这确实意味着我的配置被配置为捕获写入事件。我找不到明确的指南或手册来配置它以接收TCP流。我的项目中有这个xml配置:我的累加器类应该是我的接收channel的端点:publicclassAccumu
我一直在使用spring框架4开发一个项目。我正在尝试通过spring-integration-ip库创建一个简单的TCP客户端。我已经调整了所有配置:applicationContext.xml......bean配置:@ConfigurationpublicclassMyConfiguration{@BeanpublicAbstractClientConnectionFactorytcpConnectionFactory(){returnnewTcpNetClientConnectionFactory("localhost",2345);}}我已经阅读了所有关于springtcp的
我使用SpringIntegrationtcp-outbound-adapter和tcp-inbound-adapter以通过TCP与第三方外部系统通信。我使用的连接工厂是“client”类型并且有single-use="false",因为与外部系统通信的本质是几十个请求和回复的session。外部系统希望我为每个session打开一个新的TCP连接。有什么方法可以通过SpringIntegration做到这一点吗?我的代码成功地将SI用于一个这样的session。但我希望我的系统打开几个这样的连接,这样我就可以处理多个并发session。目前,如果我向入站适配器发送新session的
我需要类似于CannotsendresponseforUDPmessage中的东西但对于TCP。所以客户端发送消息和TCP服务器可以发回像OK这样的响应。对于TCPsocket-expression="@inbound.socket"和destination-expression="headers['ip_packetAddress']"不能使用。这就是我现在的配置: 最佳答案 在TCP的情况下要容易得多,因为您可以使用InboundGateway.有关此事的示例在官方存储库中:https://github.com/spring-p
我正在尝试使用SpringIntegration实现以下场景:我需要通过TCPIP连接到服务器并处理收到的消息。我需要将消息发送到接收和处理响应的同一台服务器。这是我的配置:我可以收到服务器发来的消息,但我不知道如何转换字符串。消息到达时不会调用javaDeserializer。2014-01-1905:47:20DEBUGTcpNioConnection:380-localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6Reading...2014-01-1905:47:20DEBUGTcpNioConnection:324-Read26i