我正在使用 channel 适配器(不是网关)通过 MessagingTemplate 的 sendAndReceive 将数据从 spring 集成服务器发送到连接的非 spring 客户端(或只是 telnet)。
在客户端收到数据后,有的时候想回复数据给服务器,解决sendAndReceive-Waiting。我仍然希望能够将其他数据发送到服务器。
sendAndReceive 如何检测响应?现在我可以将我想要的任何内容发送到服务器,它会将其视为新的传入消息。
是否有预定义的方式,例如为 messageid 添加前缀,还是我必须通过解释传入消息并以某种方式“解决”sendAndReceive-blocker 来手动实现它?
最佳答案
MessagingTemplate.sendAndReceive
基于 TemporaryReplyChannel
,它被放置到 MessageHeaders
和之后的一些 AbstractReplyProducingMessageHandler
中使用该 header 发送回复。
是的,发送线程被阻塞以等待整个 TemporaryReplyChannel
的回复。
希望对您有所帮助。
你对 TCP/IP 的所有其他评论对我来说还不清楚......
关于java - 如何从普通 tcp 客户端响应 MessagingTemplate 的 sendAndReceive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30731322/