带有 spring-integration 的 UDP 服务器

use*_*531 5 java spring-integration

我想知道是否可以创建一个带有 spring-integration 框架的 UDP 服务器,它能够接受请求并返回响应。

对于 TCP,有允许请求/响应处理的 TCP 网关,但我没有看到 UDP 类似的东西。

设置 UDP 侦听器并接收数据包很容易,但是我看不到如何返回响应,因为我只能将其路由到预定义的输出通道。

此外,我没有看到发件人的 IP 和端口,因为转换器不接收 DatagramPacket 对象,而只接收数据。

这是我的配置:

<int:channel id="ChannelIn" />

<ip:udp-inbound-channel-adapter id="ChannelReceiver"
    channel="ChannelIn"
    port="5555"
    multicast="false"
    check-length="false" 
    pool-size="10"
    />

<int:transformer
    ref="datagramToPacketTransformer"
    input-channel="ChannelIn"
    output-channel="ChannelSA" 
    method="toPacket"/>

<int:channel id="ChannelSA" />

<int:service-activator id="ChannelActivator" 
    input-channel="ChannelSA"
    ref="PacketHandler"
    method="process"
/>
Run Code Online (Sandbox Code Playgroud)

Gar*_*ell 1

大约两年前我开启了 JIRA 的新功能

https://jira.springsource.org/browse/INT-1809

但它没有收到投票或观察者,所以我关闭了它。

请随意添加评论,我们可以重新打开它。

发件人的 IP 位于消息标头中,但不是他的端口...

            message = MessageBuilder.withPayload(payload)
                    .setHeader(IpHeaders.HOSTNAME, hostName)
                    .setHeader(IpHeaders.IP_ADDRESS, hostAddress)
                    .build();
Run Code Online (Sandbox Code Playgroud)

如果您想为此打开一个新的 JIRA,那么这是一个足够小的更改,可以进入 2.2。很快就会发布(但网关不会制作 2.2)。

https://jira.springsource.org/browse/INT