spring-boot - 带有 Java DSL 的 Spring Integration 服务器

标签 spring-boot spring-integration tcp

我正在寻找一个 Spring Integration 4.3.14 TCP 服务器的示例,该服务器使用 Java DSL 而不是 XML 来响应消息。

4.3.14 要求由公司政策制定,该政策也避免使用 XML。

最终要求是从 PLC 接收格式化的文本有效负载并以同样的方式响应。 PLC 代码是遗留的,根本没有明确定义,并且类似的有效载荷可以有不同的格式。

处理输入负载的简单方法是将其视为字符串并在 Java 代码中处理。

我有一个基本的接收工作,但无法弄清楚如何发送回复,阅读了很多示例等等,但现在认为头脑只是困惑,所以一个简单的工作示例将是理想的。

非常感谢

最佳答案

给你...

@SpringBootApplication
public class So50412811Application {

    public static void main(String[] args) {
        SpringApplication.run(So50412811Application.class, args).close();
    }

    @Bean
    public TcpNetServerConnectionFactory cf() {
        return new TcpNetServerConnectionFactory(1234);
    }

    @Bean
    public TcpInboundGateway gateway() {
        TcpInboundGateway gw = new TcpInboundGateway();
        gw.setConnectionFactory(cf());
        return gw;
    }

    @Bean
    public IntegrationFlow flow() {
        return IntegrationFlows.from(gateway())
                .transform(Transformers.objectToString())
                .<String, String>transform(String::toUpperCase)
                .get();
    }

    // client

    @Bean
    public ApplicationRunner runner() {
        return args -> {
            Socket socket = SocketFactory.getDefault().createSocket("localhost", 1234);
            socket.getOutputStream().write("foo\r\n".getBytes()); // default CRLF deserializer
            InputStream is = socket.getInputStream();
            int in = 0;
            while (in != 0x0a) {
                in = is.read();
                System.out.print((char) in);
            }
            socket.close();
        };
    }

}

关于spring-boot - 带有 Java DSL 的 Spring Integration 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50412811/

相关文章:

java - 如何在 Spring Boot 中获取索引的 json 作为响应?

java - redisson java 客户端能否检测到集群拓扑中失败的主副本对的重启?

java - 如何在 Spring 集成中将 XML JMS 消息发送到 FTP

Java消息对象枚举Spring集成错误

azure - 如何获取 Azure 应用服务应用程序的 TCP 连接状态列表?

具有 Liquibase 重载属性的 Spring-boot

java - Spring Kafka 测试 - 使用 EmbeddedKafka 在 @KafkaListener 中未接收数据

spring - HTTP-出站网关不显示特殊字符-编码中断

c++ - toLocal8bit 通过 TCP 发送

c# - C# 中 TCP 通信的服务器端口繁忙问题