Apache Mina框架实践(二)

2015-12-15 23:09:30 · 作者: · 浏览: 98
dler.java


publicclass UDPHandler extends IoHandlerAdapter {


private final Logger logger =Logger.getLogger(this.getClass());


?


@Override


public void messageSent(IoSessionsession, Object message) throws Exception {


}


?


@Override


public void exceptionCaught(IoSessionsession, Throwable cause)


? ? throws Exception {


? ? logger.error(cause);


? ? session.close(true);


}


?


@Override


? ? public void messageReceived(IoSessionsession, Object message) throws Exception {


? ? ? ? logger.info("messageReceived");


? if (message instanceof IoBuffer) {


? ? ? ? IoBuffer buffer = (IoBuffer) message;


? ? ? ? UDPRequestServer controller = UDPRequestServer.getInstance();


? ? ? ? ? ? ? IoBuffer buffer1 =controller.dealRequest(buffer);


? ? ? ? ? ? ? session.write(buffer1);


? }


? ?


? ? }


}


注意点:


>心跳机制:


(1)客户端会定时发送心跳请求(注意定时时间必须小于,服务器端的IDLE监控时间),同时需要监听心跳反馈,以此来判断是否与服务器丢失连接。对于服务器的心跳请求不给与反馈。


(2)心跳情况在60秒之内


(3)客户端和服务端同时都需要设置心跳请求