【问题标题】:communicate with remote host using camel-netty tcp使用 camel-netty tcp 与远程主机通信
【发布时间】:2016-03-11 02:39:46
【问题描述】:

我有一个在远程主机上运行的程序,我需要连接到该主机,握手,然后收听消息。我已经设置了以下骆驼路线:

<route>
   <from uri="netty:tcp://localhost:50001?decoders=#decoders&amp;sync=false" />
   <bean ref="TransformMessage" method="inboundDecoder" />
   <to uri="eventadmin:messages/aacus/inbound" />
</route>

<route>
   <from uri="eventadmin:messages/aacus/outbound" />
   <bean ref="TransformMessage" method="outboundEncoder" />
   <to uri="netty:tcp://192.168.0.111:50001?allowDefaultCodec=false&amp;sync=false" />
</route>

我的问题是如何进行这项工作?如果我使用

建立路线

&lt;from uri="netty:tcp://192.168.0.111:50001?decoders=#decoders&amp;amp;sync=false" /&gt;

由于绑定错误而失败。

如何在不修改服务器的情况下设置连接以响应特定端口?

【问题讨论】:

    标签: tcp apache-camel netty


    【解决方案1】:

    在撰写本文时,camel-mina 和 camel-netty 都不可能。消费者只能绑定到本地服务器。 Apache 有一张 JIRA 票,可以在未来实现这样的新功能。 https://issues.apache.org/jira/browse/CAMEL-1077

    【讨论】:

    • 谢谢克劳斯,我担心是这样。令人沮丧的是,这不受支持,因为它似乎是一个常见且明显的用例。我通过为 Camel 实现一个处理我的 TCP 通信的自定义组件来解决这个问题。
    【解决方案2】:

    使用以下解决方法:

    而不是 192.168.0.111 使用 localhost。 然后安装“socat”并按如下方式启动

    socat -s -u tcp4:192.168.0.111:50001 tcp4:localhost:50001
    

    这会将您的远程连接隧道连接到您使用 camel/netty 创建的本地服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多