package org.fanhongtao.net.frame.handler; import org.fanhongtao.net.frame.MsgInfo; import org.fanhongtao.net.frame.nio.ChannelWriter; import org.fanhongtao.net.frame.nio.Connection; import org.fanhongtao.net.frame.nio.NetUtils; import org.fanhongtao.net.frame.nio.Request; /** * 实现将消息原样返回给客户端 * @author Dharma * @created 2009-5-2 */ public class EchoHandler extends HandlerAdapter { @Override public void onMessage(Connection connection) { byte[] data = connection.getBuffer().getData(); if ((data.length == 1) && (data[0] == 0x03)) // Ctrl-C 中断连接 { NetUtils.closeKey(connection.getKey()); return; } String str = new String(data); if (str.startsWith("quit")) { NetUtils.closeKey(connection.getKey()); return; } MsgInfo retMsg = MsgInfo.getResponseMsg(connection.getSendDirection()); retMsg.setMsg(data); Request res = new Request(connection, retMsg); ChannelWriter.send(res); } }