我是 Spring Integration 的新手,目前正在尝试通过 TCP 从某些设备接收数据。我想出了以下 Spring 上下文:
<bean id="serializer" class="com.somepackage.CustomSerializer"/>
<int-ip:tcp-connection-factory id="connectionFactory"
type="server"
port="${tcp.socket.connection.listener.port}"
deserializer="serializer" />
设备协议的问题在于,在初始连接时,它会发送一个握手序列,并在开始发送消息之前期望得到一个神奇的答案。
消息模式与握手序列不同,我无法实现区分这两者的序列化程序。如果可以的话,我会将这个握手过程实现为拦截器。所以我尝试实现一个有状态的序列化器,但结果证明序列化器是单例的,在不同的连接之间共享。
您能否建议在默认机制(将数据拆分为消息)发挥作用之前如何执行一些自定义协商(握手)?我应该自定义连接工厂吗?
谢谢 !