Package org.apache.mina.core.service
Interface IoHandler
-
- All Known Implementing Classes:
AbstractProxyIoHandler
,ChainedIoHandler
,DemuxingIoHandler
,IoHandlerAdapter
,SingleSessionIoHandlerDelegate
,StreamIoHandler
public interface IoHandler
Handles all I/O events fired by MINA.- Author:
- Apache MINA Project
- See Also:
IoHandlerAdapter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
exceptionCaught(IoSession session, Throwable cause)
Invoked when any exception is thrown by userIoHandler
implementation or by MINA.void
inputClosed(IoSession session)
Handle the closure of an half-duplex TCP channelvoid
messageReceived(IoSession session, Object message)
Invoked when a message is received.void
messageSent(IoSession session, Object message)
Invoked when a message written byIoSession.write(Object)
is sent out.void
sessionClosed(IoSession session)
Invoked when a connection is closed.void
sessionCreated(IoSession session)
Invoked from an I/O processor thread when a new connection has been created.void
sessionIdle(IoSession session, IdleStatus status)
Invoked with the relatedIdleStatus
when a connection becomes idle.void
sessionOpened(IoSession session)
Invoked when a connection has been opened.
-
-
-
Method Detail
-
sessionCreated
void sessionCreated(IoSession session) throws Exception
Invoked from an I/O processor thread when a new connection has been created. Because this method is supposed to be called from the same thread that handles I/O of multiple sessions, please implement this method to perform tasks that consumes minimal amount of time such as socket parameter and user-defined session attribute initialization.- Parameters:
session
- The session being created- Throws:
Exception
- If we get an exception while processing the create event
-
sessionOpened
void sessionOpened(IoSession session) throws Exception
Invoked when a connection has been opened. This method is invoked aftersessionCreated(IoSession)
. The biggest difference fromsessionCreated(IoSession)
is that it's invoked from other thread than an I/O processor thread once thread model is configured properly.- Parameters:
session
- The session being opened- Throws:
Exception
- If we get an exception while processing the open event
-
sessionClosed
void sessionClosed(IoSession session) throws Exception
Invoked when a connection is closed.- Parameters:
session
- The session being closed- Throws:
Exception
- If we get an exception while processing the close event
-
sessionIdle
void sessionIdle(IoSession session, IdleStatus status) throws Exception
Invoked with the relatedIdleStatus
when a connection becomes idle. This method is not invoked if the transport type is UDP; it's a known bug, and will be fixed in 2.0.- Parameters:
session
- The idling sessionstatus
- The session's status- Throws:
Exception
- If we get an exception while processing the idle event
-
exceptionCaught
void exceptionCaught(IoSession session, Throwable cause) throws Exception
Invoked when any exception is thrown by userIoHandler
implementation or by MINA. Ifcause
is an instance ofIOException
, MINA will close the connection automatically.- Parameters:
session
- The session for which we have got an exceptioncause
- The exception that has been caught- Throws:
Exception
- If we get an exception while processing the caught exception
-
messageReceived
void messageReceived(IoSession session, Object message) throws Exception
Invoked when a message is received.- Parameters:
session
- The session that is receiving a messagemessage
- The received message- Throws:
Exception
- If we get an exception while processing the received message
-
messageSent
void messageSent(IoSession session, Object message) throws Exception
Invoked when a message written byIoSession.write(Object)
is sent out.- Parameters:
session
- The session that has sent a full messagemessage
- The sent message- Throws:
Exception
- If we get an exception while processing the sent message
-
-