@Override public ChannelHandler close() { CloseFuture closeFuture = session.close(false); return new MinaChannelHandler(closeFuture); }
@Override public ChannelHandler close() { CloseFuture closeFuture = session.close(false); return new MinaChannelHandler(closeFuture); }
@Override public void close() { if (state.compareAndSet(State.OPEN, State.CLOSED)) { // Ensure that the state of this connection, its session and the MINA context are eventually closed. if (session != null) { session.setStatus(Session.STATUS_CLOSED); } try { deliverRawText0(flashClient ? "</flash:stream>" : "</stream:stream>"); } catch (Exception e) { Log.error("Failed to deliver stream close tag: " + e.getMessage()); } try { ioSession.close(true); } catch (Exception e) { Log.error("Exception while closing MINA session", e); } notifyCloseListeners(); // clean up session, etc. } }
/** {@inheritDoc} */ @SuppressWarnings("deprecation") @Override public void sessionClosed(NextFilter next, IoSession session) throws Exception { IoSession forward = (IoSession) session.getAttribute(FORWARD_KEY); if (forward != null && forward.isConnected() && !forward.isClosing()) { if (log.isDebugEnabled()) { log.debug("[{}] Closing: {}", name, forward); } forward.close(true); } next.sessionClosed(session); }
@Override public void filterWrite(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception { if (!session.isClosing()) { // Get number of pending requests long pendingBytes = session.getScheduledWriteBytes(); if (pendingBytes > bytesCap) { // Get last time we were able to send something to the connected client long writeTime = session.getLastWriteTime(); int pendingRequests = session.getScheduledWriteMessages(); Log.debug("About to kill session with pendingBytes: " + pendingBytes + " pendingWrites: " + pendingRequests + " lastWrite: " + new Date(writeTime) + "session: " + session); // Close the session and throw an exception session.close(false); throw new IOException("Closing session that seems to be stalled. Preventing OOM"); } } // Call next filter (everything is fine) super.filterWrite(nextFilter, session, writeRequest); } }
protected void processTelex(IoSession session, final Telex telex, int br) { Line line = (Line) session.getAttribute("line"); if (line == null) { session.close(true); return;
/** * @see IoSession#close(boolean) */ public CloseFuture close(boolean immediately) { return wrappedSession.close(immediately); }
@Override public final String process(final IoSession session, final String... args) { session.close(true); return null; }
@Override public void sessionClosed(IoSession session) throws Exception { log.info("sessionClosed: 一个连接关闭!"); session.close(true); }
@Override public void sessionClosed(IoSession session) throws Exception { if (disconnectClientsOnReconnect) { Iterator<IoSession> clientsIterator = clients.iterator(); while (clientsIterator.hasNext()) { clientsIterator.next().close(false); // BroadcastServiceHandler.sessionClosed(IoSession) will take care of removing client from clients } } }
/** * {@inheritDoc} */ public void exceptionCaught( IoSession session, Throwable cause ) { LOG.error( session.getRemoteAddress() + " EXCEPTION", cause ); session.close( true ); }
@Override public void operationComplete(WriteFuture future) { IoSession session = future.getSession(); if (logger.isTraceEnabled()) { logger.trace(String.format("Closing session %s because of Connection: close header in HTTP request", session)); } // close on flush at server session.close(false); }
@Override public void remove(IoSessionAdapterEx session) { logger.debug("AbstractNioConnector.fake processor remove for session " + session); IoSession parent = (IoSession) session.getAttribute(AbstractNioConnector.PARENT_KEY); parent.close(false); doFireSessionDestroyed(session); }
public UserProtocolCodecFactory() { super(new UserProtocolDecoder(), new ProtocolEncoderImpl()); encoder.overScheduledWriteBytesHandler = io -> { io.close(true); return true; }; }
@Override public void stop() throws Exception { quiesce(); if (serviceContext != null) { for (IoSession session : serviceContext.getActiveSessions()) { session.close(true); } } }
@Override public void run() { session.close(false).awaitUninterruptibly(); connector.dispose(); resultReceiver.clear(); } });
public void disconnect() { if (session != null && session.isConnected()) { session.close(true).awaitUninterruptibly(); } if (this.connector != null && this.connector.isActive()) { this.connector.dispose(); this.connector = null; } }
public void kickPlayer(long playerId) { Player player = PlayerManager.getInstance().getOnlinePlayer(playerId); if (player == null) { return; } removeFromOnline(player); IoSession session = SessionManager.INSTANCE.getSessionBy(playerId); MessagePusher.pushMessage(session, new ResKickPlayerMessage()); session.close(false); }
@Override public void sessionOpened(IoSession session) throws Exception { Object request = getConversation().getRequest(); if(!getConversation().hasBanner() && request != null) { session.write(request); }else if(!getConversation().hasBanner() && request == null) { LOG.info("TCP session was opened, no banner was expected, and there are no more pending requests. Setting service detection to true."); getFuture().setServiceDetected(true); session.close(true); } }
@Override public void sessionOpened(IoSession session) throws Exception { Object request = getConversation().getRequest(); if(!getConversation().hasBanner() && request != null) { session.write(request); }else if(!getConversation().hasBanner() && request == null) { LOG.info("TCP session was opened, no banner was expected, and there are no more pending requests. Setting service detection to true."); getFuture().setServiceDetected(true); session.close(true); } }