Java 在spring集成中保持插座连接打开
SpringIntegration通过设置single use=“false”可以保持套接字连接打开。我的客户希望保持连接打开,并在同一连接上发送多个事务 以下是我计划使用的配置:Java 在spring集成中保持插座连接打开,java,sockets,tcp,spring-integration,Java,Sockets,Tcp,Spring Integration,SpringIntegration通过设置single use=“false”可以保持套接字连接打开。我的客户希望保持连接打开,并在同一连接上发送多个事务 以下是我计划使用的配置: <int-ip:tcp-connection-factory id="crLfServer" type="server" port="${availableServerSocket}" single-use="false" so-timeout="
<int-ip:tcp-connection-factory id="crLfServer"
type="server"
port="${availableServerSocket}"
single-use="false"
so-timeout="10000"
using-nio="false"
serializer="connectionSerializeDeserialize"
deserializer="connectionSerializeDeserialize"
/>
<bean id="connectionSerializeDeserialize" class="org.springframework.integration.ip.tcp.serializer.ByteArrayStxEtxSerializer"/>
如果我使用single use=“false”,只要客户端保持连接打开,连接是否打开
如果客户端在请求之间不发送数据(例如,第二个事务在30分钟后发送),是否会因为第一个请求后没有流量而关闭服务器中的连接
是否需要设置任何配置以保持连接长时间打开
请帮忙
总之,以下配置用于读取数据:
<int-ip:tcp-connection-factory id="crLfServer"
type="server"
port="${availableServerSocket}"
single-use="false"
so-timeout="0"
using-nio="false"
serializer="connectionSerializeDeserialize"
deserializer="connectionSerializeDeserialize"
/>
我想知道是什么让你以不同的方式思考。。。你发现有什么问题吗?也许你的所以timeout=“10000”
还不够?默认情况下,它是-1
-infinitey您是正确的。我必须设置so timeout=“0”,以便服务器读取现有连接。感谢您的帮助。这通常不是推荐的设置,除非您完全信任您的客户机-如果行为不好的客户机不关闭套接字,您最终可能会耗尽资源。这是正确的。在我的例子中,我知道只有5个客户机将被配置为使用它,而服务器运行只是为了支持它们。所有其他人都将被发送一个带有单次使用=“true”的服务器。我想知道是什么让你有不同的想法。。。你发现有什么问题吗?也许你的所以timeout=“10000”
还不够?默认情况下,它是-1
-infinitey您是正确的。我必须设置so timeout=“0”,以便服务器读取现有连接。感谢您的帮助。这通常不是推荐的设置,除非您完全信任您的客户机-如果行为不好的客户机不关闭套接字,您最终可能会耗尽资源。这是正确的。在我的例子中,我知道只有5个客户机将被配置为使用它,而服务器运行只是为了支持它们。所有其他服务器将发送一个一次性使用=“true”的服务器。