我必须创建一个tcp客户端
1) - 它将向服务器发送请求消息并接收响应
2) - 有时候服务器将msg发送到客户端而没有来自clientSo客户端的任何请求应该接受并阅读它。
所以我已经问了问题的一部分My tcp client using spring integration not able to get response 并尝试达成一些解决方案。但对于第二部分,我很困惑使用tcpoutbound网关或inboundgateway与客户端标志启用。 如果我想阅读服务器推送的消息,请建议任何示例或配置。
P.s我是SI的新手
答案 0 :(得分:0)
你不能使用网关;它们用于简单的请求/回复场景。
对于对等体之间的任意消息传递,请参阅Collaborating Channel Adapters。
部分要实现高容量吞吐量(避免如上所述使用网关的缺陷),您可以考虑配置一对协作的出站和入站通道适配器。也可以使用协作适配器(服务器端或客户端)进行完全异步通信(而不是使用请求/回复语义)。在服务器端,消息相关性由适配器自动处理,因为入站适配器添加了一个标头,允许出站适配器确定用于发送回复消息的连接。
在服务器端,必须注意填充
ip_connectionId
标头,因为它用于将消息与连接相关联。源自入站适配器的邮件将自动设置标头。如果要构建要发送的其他消息,则需要设置标头。可以从传入消息中捕获标头值。在客户端,如果需要,应用程序必须提供自己的关联逻辑。这可以通过多种方式完成。 ...