package com.github.ltsopensource.nio; import com.github.ltsopensource.core.json.JSON; import com.github.ltsopensource.core.logger.Logger; import com.github.ltsopensource.core.logger.LoggerFactory; import com.github.ltsopensource.nio.channel.NioChannel; import com.github.ltsopensource.nio.handler.IoFutureListener; import com.github.ltsopensource.nio.handler.NioHandler; import com.github.ltsopensource.nio.idle.IdleState; import com.github.ltsopensource.remoting.ChannelHandlerListener; import com.github.ltsopensource.remoting.Future; /** * @author Robert HG (254963746@qq.com) on 2/3/16. */ public class EventHandler implements NioHandler { private static final Logger LOGGER = LoggerFactory.getLogger(EventHandler.class); @Override public void exceptionCaught(final NioChannel channel, Exception cause) { LOGGER.error("exceptionCaught - " + channel.remoteAddress(), cause); channel.close().addListener(new IoFutureListener() { @Override public void operationComplete(Future future) throws Exception { LOGGER.info("closeChannel: close the connection to remote address[{}] result: {}", channel.remoteAddress(), future.isSuccess()); } }); } @Override public void messageReceived(NioChannel channel, Object msg) throws Exception{ LOGGER.info("messageReceived : " + channel.remoteAddress() + " " + JSON.toJSONString(msg)); } @Override public void channelConnected(NioChannel channel) { LOGGER.info("channelConnected - " + channel.remoteAddress()); } @Override public void channelIdle(NioChannel channel, IdleState state) { } }