Apache camel Camel Netty客户端:连接然后等待/侦听服务器tcp

Apache camel Camel Netty客户端:连接然后等待/侦听服务器tcp,apache-camel,netty,Apache Camel,Netty,我正在尝试创建一个Camel/Netty TCP客户端,其工作方式如下: 连接到远程服务器:1234 发送握手信息(假装是字符串“握手”) 保持此连接打开 等待/侦听来自服务器的TCP消息并答复它们 这是一个简单的hello world服务器 from("netty:tcp://localhost:8001?textline=true&sync=true") // .process((exchange) -> { St

我正在尝试创建一个Camel/Netty TCP客户端,其工作方式如下:

  • 连接到远程服务器:1234
  • 发送握手信息(假装是字符串“握手”)
  • 保持此连接打开
  • 等待/侦听来自服务器的TCP消息并答复它们
  • 这是一个简单的hello world服务器

        from("netty:tcp://localhost:8001?textline=true&sync=true") //
                .process((exchange) -> {
                    String msgReceived = exchange.getIn().getBody(String.class);
                    exchange.getOut().setBody("hello " + msgReceived);
                });
    
    我可以打开与此的命令行TCP连接,键入文本,然后接收我的hello world回复

    现在我如何构造一个类似的客户端,它同样只等待消息和回复?

    当您说“等待/侦听来自服务器的TCP消息并回复它们”时,您正在颠倒角色,现在客户端就像服务器,服务器就像客户端

    您可以做的是在客户端中设置一个传入路由,监听给定的端口,并使用初始握手消息与服务器通信,以与客户端的IP和端口进行通信

    当您说“等待/侦听来自服务器的TCP消息并回复它们”时,您正在颠倒角色,现在客户端就像服务器,服务器就像客户端


    您可以做的是在客户端中设置一个传入路由,监听给定的端口,并使用初始握手消息与服务器通信,以与客户端的IP和端口进行通信

    对这样的客户机使用camel是行不通的。请记住,驼峰路由的消息交换模式为IN/OUT和IN Only,即请求/回复和请求Only。如果您需要这样的客户端,只需使用纯netty。您可以设置一个clientMode=true选项-请参阅文档为这样的客户端使用camel是行不通的。请记住,驼峰路由的消息交换模式为IN/OUT和IN Only,即请求/回复和请求Only。如果您需要这样的客户,只需使用纯netty。您可以设置一个clientMode=true选项-请参阅文档我不确定它是否提供了解决方案,但同意您对互换角色的看法我不确定它是否提供了解决方案,但同意您对互换角色的看法