Example usage for org.apache.mina.api IoHandler IoHandler

List of usage examples for org.apache.mina.api IoHandler IoHandler

Introduction

In this page you can find the example usage for org.apache.mina.api IoHandler IoHandler.

Prototype

IoHandler

Source Link

Usage

From source file:com.hongweiyi.jmeter.client.Mina3TcpBenchmarkClient.java

License:Apache License

@Override
public Object getClient(int port, final RecvCounterCallback clientCallback, String... params) throws Exception {
    client = new NioTcpClient();
    client.getSessionConfig().setSendBufferSize(64 * 1024);
    client.getSessionConfig().setTcpNoDelay(true);
    client.setIoHandler(new IoHandler() {

        @Override//from  w w  w.j  ava  2  s .  c om
        public void sessionOpened(IoSession session) {
        }

        @Override
        public void messageReceived(IoSession session, Object message) {
            if (message instanceof ByteBuffer) {
                ByteBuffer buffer = (ByteBuffer) message;
                int length = buffer.remaining();
                while (length-- > 0) { // server responses only one byte
                    clientCallback.receive();
                }
            } else {
                throw new IllegalArgumentException(message.getClass().getName());
            }
        }

        @Override
        public void exceptionCaught(IoSession session, Exception cause) {
            cause.printStackTrace();
        }

        @Override
        public void sessionClosed(IoSession session) {
        }

        @Override
        public void sessionIdle(IoSession session, IdleStatus status) {
        }

        @Override
        public void messageSent(IoSession session, Object message) {
        }

        @Override
        public void serviceActivated(IoService service) {
        }

        @Override
        public void serviceInactivated(IoService service) {
        }
    });

    try {
        return client.connect(new InetSocketAddress(port)).get();
    } catch (InterruptedException e) {
        throw e;
    } catch (ExecutionException e) {
        throw e;
    }
}