传说中的解码器(自定义解码器ProtocolEncoder )

举个例子:
 
public class Myecode implements ProtocolEncoder {
// 过滤器会自动跳入此方法
 public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
List<String> db = (List<String>)message;//message代表session.write(Object obj)的obj,可以是自定义对象,后续文章会有讲解
  byte[] data = //回写到客户端的流,一般都是message提供的流对象;
  ByteBuffer buffer = ByteBuffer.allocate(data.length);//MINA提供的工具ByteBuffer,创建一个长度为data.length的ByteBuffer
   try {
   buffer.putInt(data.length);//向流中写入一个int
   } catch (Exception ex) {
   buffer.putInt(0);
  }
  buffer.put(data);//流中写入byte数组
  buffer.flip();//有点压栈的意思,还不是很清楚
  out.write(buffer);//向客户端写入数据,并进入下一个过滤,没有过滤的话就响应到客户端了。
 }
 public void dispose(IoSession session) throws Exception {
 }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值