想法是将 apache vysper 集成到现有的 netty 应用程序中。是否可以将客户端的 ChannelBuffer 作为 mina'a ChannelBuffer 连接到 netty,以便将其委托给 vysper?
想法是为 apache vysper 制作基于 netty 的自定义端点,获取 ChanellBuffer 并将其传递给 vysper。
想法是将 apache vysper 集成到现有的 netty 应用程序中。是否可以将客户端的 ChannelBuffer 作为 mina'a ChannelBuffer 连接到 netty,以便将其委托给 vysper?
想法是为 apache vysper 制作基于 netty 的自定义端点,获取 ChanellBuffer 并将其传递给 vysper。
Apache Vysper 使用 MINA,一种类似于 netty 的非阻塞 I/O 框架。
当我设计 Vysper 时,我尽量不要将 MINA 与 Vysper 的其余部分耦合得太紧。所以理论上应该可以用netty替换MINA,如果你想走那条路。查看源代码,您需要从包 https://svn.apache.org/repos/asf/mina/vysper/trunk/server/core/src/main/java/org/apache移植所有功能/vysper/米娜 到netty并替换它的用法。这是可行的,但需要一些工作。此外,Vypser 使用 XMPP 作为基于/是 XML 子集的协议。Vysper 使用非阻塞 XML 解析器“nbxml”,它是 Vysper 的子项目。(https://svn.apache.org/repos/asf/mina/vysper/trunk/nbxml)你也需要用netty版本的nbxml替换它。在 dev@mina.apache.org 的 Vysper 邮件列表中,我可以为您提供详细的帮助。
另一种方法是使用 netty 端点,并且 - 正如 Norman 所建议的 - 以某种方式将缓冲区传递给 Vysper/MINA。这听起来像是一种优雅的方法,但我怀疑它是否比以前的方法更可行。我不知道 netty 是否有符合 Vysper 需求的非阻塞 XML 解析器。可能需要一些丑陋的特技才能将网状包裹在 MINA 周围。
最后一个建议是按原样使用 Vypser。MINA 在过去几年里并没有像 netty 那样受到那么多的喜爱,但它也是一个非阻塞 IO 框架。如果您真的坚持使用 netty,请考虑将其用作代理,在一个端点使用 netty,在另一个端点使用 Vysper/MINA,然后将您在 netty 端点收到的字节路由到 Vysper/MINA。
我想您可以编写自己的 impl 来包装它。或者使用支持的字节数组并包装它。