gpt4 book ai didi

java - Spring集成使用网关发送ack

转载 作者:行者123 更新时间:2023-12-01 12:47:18 26 4
gpt4 key购买 nike

我有一个生产者(用 CPP 编写)将二进制数据发送到“spring-integration server”。它的工作原理如下: spring integration time out clients

现在我必须向生产者发送回复(如 ACK)。

我读过有关网关的内容,但实际上我很困惑。我的配置是:

<int-ip:tcp-connection-factory id="serverTcpConFact"
type="server"
port="5566"
using-nio="true"
single-use="false"

task-executor="myTaskExecutor"
deserializer="serializer"
serializer="serializer"/>

<int-ip:tcp-inbound-channel-adapter id="tcpInboundAdapter"
channel="tcpInbound"
connection-factory="serverTcpConFact" />

<int:channel id="tcpInbound" />


<int:service-activator
output-channel="tcpOutbound"
input-channel="tcpInbound"
ref="importService"
method="handler" />

<bean id="importService" class="my.ImportService" />

<int:channel id="tcpOutbound" />

<int:gateway id="mygateway"
service-interface="my.IpMyGatway"
default-request-channel="tcpInbound"
default-reply-channel="tcpOutbound"
default-reply-timeout="6000"/>

我还有一个自定义序列化器,问题是我的 Spring 集成服务器不发送回复。

我需要执行回复:

@Override
public void serialize(MyMessage arg0, OutputStream outputStream) throws IOException {
// TODO Auto-generated method stub
logger.info("serialize messages");
// here I have to write my ACK ! ( .. or not?)
}

然后将消息发送给每条消息的生产者。

谢谢。

最佳答案

我想知道为什么 <int-ip:tcp-inbound-gateway> 对你来说还不够...

这足以生成 service 的回复消息网关会将其作为响应发送给客户端。

简单示例:

<ip:tcp-inbound-gateway id="gatewaySerializedNio"
connection-factory="connectionFactory"
request-channel="serviceChannel" />

<channel id="serviceChannel" />

<service-activator input-channel="serviceChannel"
ref="service" method="process"/>

<beans:bean id="service" class="com.my.proj.MyService" />

MyService#process的返回值方法将被序列化到 TCP 套接字。

关于java - Spring集成使用网关发送ack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24575144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com