创建TCP客户端以在Spring Boot应用程序中发送和接收

时间:2019-05-14 13:02:48

标签: spring-boot tcp spring-integration spring-integration-dsl

我应该与旧系统进行交互,在旧系统中,我必须使用java / kotlin中的spring-integration设置TCP客户端,以将消息发送到TCP系统并接收其响应,解析该响应并将其发送给其他客户端通过REST。我浏览了许多文档和博客,其中介绍了如何通过xml进行操作。找不到所有内容的对应注释。任何代码段都将非常有帮助。

@Service
class MyService{

@Autowired
MyGateway gateway;

public String callTCPClient(String msg){
    return gateway.exchange(msg);
}

}
interface MyGateway{
String exchange (String msg)
}

1 个答案:

答案 0 :(得分:1)

如该答案所示,您可以在收到响应后随心所欲...

@Bean
public IntegrationFlow client() {
    return IntegrationFlows.from(MyGateway.class)
            .handle(Tcp.outboundGateway(
                Tcp.netClient("localhost", 1234)
                    .serializer(codec()) // default is CRLF
                    .deserializer(codec()))) // default is CRLF
            .transform(Transformers.objectToString()) // byte[] -> String
            .get();
}

在这种情况下,我们只是将字节数组转换为字符串,但是您可以对其执行所需的任何操作,例如JSON到对象。您可以根据需要添加任意数量的步骤-添加.handle(...)元素以调用任意方法。阅读Spring Integration Reference Manual