Force MINA niosocketacceptor megtisztítására

szavazat
3

Elkezdtem a mina tenni aszinkron ír a foglalat, de most úgy tűnik, nem zárja a foglalkozásokon. Van egy módja annak, hogy erőt mina zárja az összes kezelt üléseken vagy megtisztítása? Van, amit el a tiszta most:

if(this.acceptor.isActive()) {
  for(IoSession session : this.acceptor.getManagedSessions().values()) {
      session.close(true);
  }

  this.acceptor.unbind();
  this.acceptor.dispose();
}

Kösz

A kérdést 18/03/2011 20:29
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Hová tetted a kódot?

Csak használt hurok, mint az alábbi, és minden ülés zártak. Először is, a szerver fut, és indítsa 3 ügyfelek 10 másodperc alatt. Látni fogja az összes ügyfél ülés zárva lesz, ha 10 másodperc múlik.

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

public class MinaServer {

    public static void main(String[] args) throws Exception {

        IoAcceptor acceptor = new NioSocketAcceptor();
        acceptor.getFilterChain().addLast("logger", new LoggingFilter());
        acceptor.getFilterChain().addLast(
                "codec",
        new ProtocolCodecFilter(new TextLineCodecFactory(Charset
                .forName("UTF-8"))));

        acceptor.setHandler(new ServerHandler());
        acceptor.bind(new InetSocketAddress(1071));

        Thread.sleep(10000);

        if (acceptor.isActive()) {
            for (IoSession ss : acceptor.getManagedSessions().values()) {
                ss.close(true);
            }

        }
    }
}
Válaszolt 05/12/2012 02:19
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more