package com.deepnighttwo.nettylearn.test.handler;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
public class SingleBytesCharactorEchoHandler extends SimpleChannelHandler {
public static final SingleBytesCharactorEchoHandler INSTANCE = new SingleBytesCharactorEchoHandler();
private SingleBytesCharactorEchoHandler() {
}
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
Channel channel = e.getChannel();
StringBuilder recv = new StringBuilder();
ChannelBuffer buff = (ChannelBuffer) e.getMessage();
while (buff.readable()) {
recv.append((char) buff.readByte());
}
String recvStr = recv.toString();
System.out.println("Message Recieved:" + recvStr);
channel.write(ChannelBuffers.copiedBuffer(recvStr.getBytes()));
// future.addListener(new ChannelFutureListener() {
//
// public void operationComplete(ChannelFuture future) throws Exception
// {
// future.getChannel().close();
// }
//
// });
super.messageReceived(ctx, e);
}
// @Override
// public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
// throws Exception {
// super.exceptionCaught(ctx, e);
// }
}