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のプロセッサが呼び出される前に、これらの「ハンドシェイク」手順を実行するにはどうすればよいですか?これはCamelでも可能ですか、それともこれを処理するためにストレートのMinaクライアントを作成する必要がありますか。このタイプの統合シナリオに対処するためのより良いオプションはありますか?

ありがとうございました。

-サンティ

4

2 に答える 2

1

これは、Mina によく似たNettyを使用したセッション ハンドシェイク プロトコルの実装に関する非常に優れたチュートリアルです。これを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 に答える