/// <inheritdoc/> public override void SessionOpened(IoSession session) { // Set timeouts session.Config.WriteTimeout = _writeTimeout; session.Config.SetIdleTime(IdleStatus.ReaderIdle, _readTimeout); // Create streams IoSessionStream input = new IoSessionStream(); IoSessionStream output = new IoSessionStream(session); session.SetAttribute(KEY_IN, input); session.SetAttribute(KEY_OUT, output); ProcessStreamIo(session, input, output); }
/// <inheritdoc/> public override void SessionClosed(IoSession session) { IoSessionStream input = session.GetAttribute <IoSessionStream>(KEY_IN); IoSessionStream output = session.GetAttribute <IoSessionStream>(KEY_OUT); try { input.Close(); } finally { output.Close(); } }
/// <inheritdoc/> public override void SessionOpened(IoSession session) { // Set timeouts session.Config.WriteTimeout = _writeTimeout; session.Config.SetIdleTime(IdleStatus.ReaderIdle, _readTimeout); // Create streams IoSessionStream input = new IoSessionStream(); IoSessionStream output = new IoSessionStream(session); session.SetAttribute(KEY_IN, input); session.SetAttribute(KEY_OUT, output); ProcessStreamIo(session, input, output); }
/// <inheritdoc/> public override void ExceptionCaught(IoSession session, Exception cause) { IOException ioe = cause as IOException; if (ioe != null) { IoSessionStream input = session.GetAttribute <IoSessionStream>(KEY_IN); if (input != null) { input.Exception = ioe; return; } } if (log.IsWarnEnabled) { log.Warn("Unexpected exception.", cause); } session.Close(true); }
/// <inheritdoc/> public override void MessageReceived(IoSession session, Object message) { IoSessionStream input = session.GetAttribute <IoSessionStream>(KEY_IN); input.Write((IoBuffer)message); }