java - Apache MINA 解码器类解释

标签 java apache-mina

我目前正在深入研究 Apache MINA。这是一个很棒的框架,具有很多功能。到目前为止最难的部分是解码器部分。检查api文档我了解到有以下类可以扩展和实现自己的类:

  1. DemushingProtocolDecoder - 一个复合 ProtocolDecoder,它将传入的 IoBuffer 解码请求多路分解为适当的 MessageDecoder。
  2. ObjectSerializationDecoder - 使用 IoBuffer.getObject(ClassLoader) 反序列化可序列化 Java 对象的 ProtocolDecoder。
  3. PrefixedStringDecoder - 使用固定长度前缀解码字符串的 ProtocolDecoder。

以上所有内容都扩展了 CumulativeProtocolDecoder 类 - 一个 ProtocolDecoder,它将接收到的缓冲区的内容累积到累积缓冲区中,以帮助用户实现解码器。

  • 您能否用一些现实世界的示例来提及您将使用或曾经使用的 CumulativeProtocolDecoder 的子类以及原因?
  • 有没有一个例子,不需要解码器扩展CumulativeProtocolDecoder类,直接实现ProtocolDecoder而不用担心碎片?

最佳答案

我在我的应用程序中使用 DemushingProtocolDecoder 类的实例。在 org.apache.mina.filter.codec.demux 包下,有一些可用于解码消息的接口(interface)和类。有一个名为 MessageDecoder 的接口(interface)。创建您自己的类来实现此接口(interface),MINA 将完成工作。像这样的事情,

public class MyDecoder implements MessageDecoder {
      public MessageDecoderResult decode(IoSession session, IoBuffer buffer, ProtocolDecoderOutput decoderOutput) throws Exception {
           /* Your
              decode
              mechanism */
           decoderOutput.write(message); // don't forget to write your decoded message object at some point.
           return MessageDecoder.OK; //or something else that matches your needs.
      }
}

关于java - Apache MINA 解码器类解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562270/

相关文章:

java - 插件之间的 Atlassian Confluence 通信/身份验证

java Web 服务客户端尝试通过 SSL 访问 Web 服务 - TrustManagerFactoryImpl 未初始化

java - Apache MINA NIO 连接器帮助

java - 我的 MINA 消息有什么问题?遍历 NioSocketConnector 并失败,导致 MINA 停止

java - java.net.Socket 中的 Apache Mina 服务器和客户端

java - Jtable 不显示图像

java - 依赖排序算法

Java Swing 使 JSpinner 停止累加

java - Apache MINA SFTP 示例

java - 使用 spring 连接 apache mina