package com.mogujie.tt.imlib.proto; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelDownstreamHandler; import com.mogujie.tt.packet.base.DataBuffer; import com.mogujie.tt.packet.base.Packet; /** * @Description: 数据编码器,把要发送的数据按照一定格式拼接成二进制的流 * @author ziye - ziye[at]mogujie.com * @date 2013-7-21 下午4:02:07 * @modify yugui */ public class PacketEncoder extends SimpleChannelDownstreamHandler { /** * @Description: 把要发送的数据编码成二进制数据并发送 */ public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception { Packet request = (Packet) e.getMessage(); DataBuffer buffer = null; try { buffer = request.encode(); } catch (Exception e2) { } if (null != buffer) { Channels.write(ctx, e.getFuture(), buffer.getOrignalBuffer()); } } }