0

我需要通过 TCP 为基于 XML-RPC 的服务实现消费者。在建立与服务器的连接时,它需要

  1. 身份验证凭据由客户端发送
  2. 客户端发送事件订阅请求,最后
  3. 客户端将切换到“接收”模式,其中消息将异步发送
  4. 当客户端不再对接收更多事件感兴趣时,客户端应该“放松”步骤 1-3。

因此,我想使用 Apache Camel 来实现客户端,具有明显的 Mina 组件入口端点(“mina:tcp:// host :_port_?textline=true&decoderMaxLineLength=10240&sync=true”)。我的问题是,我将如何实施上述步骤 1、2 和 4?在调用 RouteBuilder 中的处理器之前,我将如何执行这些“握手”步骤?骆驼甚至可以做到这一点,还是我必须编写一个直接的 Mina 客户端来处理这个问题。是否有更好的选择来处理这种类型的集成场景?

谢谢你。

-桑蒂

4

2 回答 2

1

这是一个非常好的使用Netty实现会话握手协议的教程,它与 Mina 非常相似。您可以使用Camel 的 Netty 组件来实现这一点,或者参考教程使用 Mina 构建相同的组件。

于 2012-07-18T12:32:45.803 回答
1

可能为时已晚,但其他人可能需要答案。关键是您需要使用处理器。像这样的东西

from("mina:tcp:////host:_port_?textline=true&decoderMaxLineLength=10240&sync=true")  
.process(new Processor() {  
   public void process(Exchange exchange) throws Exception {  
     String inboundMessage =  exchange.getIn().getBody(String.class);  
     String outboundMessage = "echo:"+inboundMessage;
     exchange.getOut().setBody(outboundMessage);  
   }  
}).to(""mock:result"");

outboundMessage 将是对表单端点的回复mina:tcp:////host:_port_?textline=true&decoderMaxLineLength=10240&sync=true

于 2014-07-08T00:05:51.307 回答