/**
*
*/
package video.serverProxy;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import video.lib.RtspMessage;
/**
* @author yuezhu
*
*/
public class MinaServerHandler extends IoHandlerAdapter {
private static final Logger LOGGER = LoggerFactory.getLogger(MinaServerHandler.class);
@Override
public void exceptionCaught(IoSession session, Throwable cause) {
LOGGER.debug("exceptionCaught() is invoked.");
cause.printStackTrace();
RtspServerHandler rtspServerHandler = (RtspServerHandler) (session.getAttribute(RtspServerHandler.TOKEN));
if (rtspServerHandler != null) {
rtspServerHandler.close();
LOGGER.info("Server session closed.");
}
}
@Override
public void sessionCreated(IoSession session) {
LOGGER.debug("sessionCreated() is invoked.");
LOGGER.info("New session: " + session.getRemoteAddress());
}
@Override
public void sessionClosed(IoSession session) {
// System.err.println("sessionClosed() is invoked.");
LOGGER.debug("sessionClosed() is invoked.");
RtspServerHandler rtspServerHandler = (RtspServerHandler) (session.getAttribute(RtspServerHandler.TOKEN));
if (rtspServerHandler != null) {
rtspServerHandler.close();
}
}
@Override
public void messageReceived(IoSession session, Object message) {
LOGGER.debug("messageReceived() is invoked.");
RtspServerHandler rtspServerHandler = (RtspServerHandler) (session.getAttribute(RtspServerHandler.TOKEN));
rtspServerHandler.onMessageReceivedFromServer((RtspMessage) message);
}
}