0

アイデアは、apachevysperを既存のnettyアプリケーションに統合することです。クライアントからnettyに接続されているChannelBufferをmina'aChannelBufferとして接続して、vysperに委任することはできますか?

アイデアは、apache vysperのカスタムnettyベースのエンドポイントを作成し、ChanellBufferを取得して、それをvysperに渡すことです。

4

2 に答える 2

0

私はあなたがそれを包むあなた自身のimplを書くことができると思います。または、バックアップされたbytearrayを使用して、これをラップします。

于 2012-08-20T17:35:18.800 に答える
0

Apache Vysperは、nettyに似たノンブロッキングI/OフレームワークであるMINAを使用します。

Vysperを設計したとき、MINAを他のVysperと緊密に結合しないようにしました。したがって、理論的には、そのルートに行きたい場合は、MINAをnettyに置き換えることができるはずです。ソースコードを見ると、パッケージ https://svn.apache.org/repos/asf/mina/vysper/trunk/server/core/src/main/java/org/apacheからすべての機能を移植する必要があります。 / vysper / mina ネットに接続し、その使用法を置き換えます。それは実行可能ですが、いくつかの作業が必要です。さらに、Vypserは、XMLに基づく/XMLのサブセットであるプロトコルとしてXMPPを使用します。Vysperは、Vysperのサブプロジェクトである非ブロッキングXMLパーサー「nbxml」を使用します。(https://svn.apache.org/repos/asf/mina/vysper/trunk/nbxml)これもnettyバージョンのnbxmlに置き換える必要があります。Vysperメーリングリスト(dev@mina.apache.org)で、これについて詳しく説明することができます。

別のルートは、nettyエンドポイントを使用することであり、ノーマンが示唆したように、どういうわけかバッファをVysper/MINAに渡します。これはエレガントなアプローチのように聞こえますが、以前のアプローチよりも実現可能かどうかは疑問です。nettyにVysperのニーズに一致する非ブロッキングXMLパーサーがあるかどうかはわかりません。ネットをMINAに巻き付けるには、おそらく醜いスタントが必要になるでしょう。

最後のアドバイスは、Vypserをそのまま使用することです。MINAは、過去数年間、nettyほど多くの愛を受けていませんでしたが、それはノンブロッキングのIOフレームワークでもあります。本当にnettyに固執している場合は、それをプロキシとして使用することを検討してください。あるエンドポイントにnettyを配置し、別のエンドポイントにVysper / MINAを配置し、nettyエンドポイントで受信したバイトをVysper/MINAにルーティングします。

于 2012-08-22T09:56:32.833 に答える