user2695543
user2695543

Reputation: 111

How to send reply for TCP requests (spring-integration)?

I would need something similar like in Can not send response for UDP message but for TCP. So the client send message and TCP server can send back response like OK. For TCP socket-expression="@inbound.socket" and destination-expression="headers['ip_packetAddress']" cannot be used.

This is how my config look like now:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
    xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
    xmlns:int-event="http://www.springframework.org/schema/integration/ip"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
        http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd">

  <int:channel id="tcpSend"/>

  <int-ip:tcp-connection-factory id="client" type="client"/>

  <int-ip:tcp-connection-factory id="server" type="server" host="localhost" port="1234"/>

  <int-ip:tcp-outbound-channel-adapter id="tcpOutbound" channel="tcpSend"
                                   connection-factory="client"/>

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

  <int:service-activator id="tcpHandler" input-channel="tcpReceive" output-channel="tcpSend"
                         ref="listener"/>
</beans>

Upvotes: 3

Views: 1968

Answers (1)

Artem Bilan
Artem Bilan

Reputation: 121177

In case of TCP it is much easier because you can use Inbound Gateway.

The sample on the matter is in the official repository: https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server

Upvotes: 3

Related Questions