liusuyi
2024-10-23 44b8d8b3407cacce19e3702c2167ecdf3db5d24c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.ard.tianyu.netty.handler;// MessageProtocolEncoder.java
 
import com.ard.tianyu.netty.command.BaseCommand;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
 
public class MessageProtocolEncoder extends MessageToByteEncoder<BaseCommand> {
    @Override
    protected void encode(ChannelHandlerContext ctx, BaseCommand command, ByteBuf out) throws Exception {
        out.writeShort(command.getDataHeader()); // 写入帧头
        out.writeShort(command.getDataLength()); // 写入数据长度
        out.writeByte(command.getCmdCode()); // 写入指令编号
        command.encode(out); // 编码具体负载
    }
}