java - 如何从普通 tcp 客户端响应 MessagingTemplate 的 sendAndReceive

标签 java tcp spring-integration

我正在使用 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/

相关文章:

java - 如何设置单个实体对玩家不可见?

java - Spring Data Neo4j starter 和 OGM SessionFactory 中 Cannot merge node using null property value for uuid 的原因是什么?

java - Spring SFTP入站 channel 适配器删除本地文件

java - JMenuItem退出不退出

python - Linux TCP 奇怪的行为

Linux TCP 接受无 SYN|ACK

java - 使用 Wi-Fi 将我的本地 PC 连接到 ANDROID 设备

java - 带有 Spring Integration 的 Kafka - 消费者超时与读取超时?

java - Spring Integration 中使用的 SpEL 表达式的类型转换

Java 按字母顺序对 ArrayList 内的 ArrayList 进行排序