Example usage for io.vertx.core.net NetSocket closeHandler

List of usage examples for io.vertx.core.net NetSocket closeHandler

Introduction

In this page you can find the example usage for io.vertx.core.net NetSocket closeHandler.

Prototype

@Fluent
NetSocket closeHandler(@Nullable Handler<Void> handler);

Source Link

Document

Set a handler that will be called when the NetSocket is closed

Usage

From source file:com.groupon.vertx.memcache.stream.MemcacheSocketHandler.java

License:Apache License

public void handle(Long time) {
    final Handler<Long> currentHandler = this;

    log.trace("handle", "establishSocket", new String[] { "eventBusAddress", "server", "delay" },
            eventBusAddress, server.getServer(), currentDelay);

    netClient.connect(server.getPort(), server.getHost(), new Handler<AsyncResult<NetSocket>>() {
        public void handle(AsyncResult<NetSocket> socket) {
            log.trace("establishSocket", "handle", new String[] { "eventBusAddress", "server", "status" },
                    eventBusAddress, server.getServer(), socket.succeeded());
            if (socket.succeeded()) {
                log.trace("establishSocket", "success");

                currentDelay = delayFactor;

                final NetSocket netSocket = socket.result();
                final MemcacheCommandHandler memcacheHandler = new MemcacheCommandHandler(netSocket);
                final MessageConsumer<MemcacheCommand> consumer = vertx.eventBus().consumer(eventBusAddress,
                        memcacheHandler);

                netSocket.exceptionHandler(ex -> {
                    log.error("establishSocket", "exception", "unknown", ex);
                    consumer.unregister();
                    memcacheHandler.finish();
                });//  w  w  w .jav a 2s  .c o  m

                netSocket.closeHandler(message -> {
                    log.warn("establishSocket", "socketClosed");
                    consumer.unregister();
                    memcacheHandler.finish();
                    vertx.setTimer(currentDelay, currentHandler);
                });
            } else {
                if (socket.result() != null) {
                    log.warn("establishSocket", "closeSocket");
                    socket.result().close();
                }
                currentDelay = Math.min(currentDelay * 2, MAXIMUM_DELAY);

                log.warn("establishSocket", "failed", new String[] { "eventBusAddress", "server" },
                        eventBusAddress, server.getServer());

                vertx.setTimer(currentDelay, currentHandler);
            }
        }
    });
}

From source file:com.groupon.vertx.redis.RedisSocketHandler.java

License:Apache License

public void handle(Long time) {
    final Handler<Long> currentHandler = this;
    netClient.connect(port, host, socket -> {
        if (socket.succeeded()) {
            log.trace("establishSocket", "success");

            currentDelay = delayFactor;/*from   ww w  . ja  v  a2 s .  c om*/

            final NetSocket netSocket = socket.result();
            final RedisCommandHandler redisHandler = new RedisCommandHandler(netSocket);

            final MessageConsumer<JsonObject> consumer = vertx.eventBus().consumer(eventBusAddress,
                    redisHandler);

            netSocket.exceptionHandler(ex -> {
                log.error("establishSocket", "exception", "unknown", ex);
                consumer.unregister();
                redisHandler.finish();
            });

            netSocket.closeHandler(message -> {
                log.warn("establishSocket", "socketClosed");
                consumer.unregister();
                redisHandler.finish();
                vertx.setTimer(currentDelay, currentHandler);
            });

        } else {
            if (socket.result() != null) {
                log.warn("establishSocket", "closeSocket");
                socket.result().close();
            }
            currentDelay = Math.min(currentDelay * 2, MAXIMUM_DELAY);

            log.warn("establishSocket", "failed", new String[] { "eventBusAddress", "server" }, eventBusAddress,
                    host);

            vertx.setTimer(currentDelay, currentHandler);
        }
    });
}

From source file:examples.NetExamples.java

License:Open Source License

public void example9_1(NetSocket socket) {

    socket.closeHandler(v -> {
        System.out.println("The socket has been closed");
    });
}

From source file:io.servicecomb.foundation.vertx.client.tcp.TcpClientConnection.java

License:Apache License

private void onConnectSuccess(NetSocket socket) {
    LOGGER.info("connectd to address {} success in thread {}.", socketAddress.toString(),
            Thread.currentThread().getName());
    // currently, socket always be NetSocketImpl
    this.initNetSocket((NetSocketImpl) socket);
    socket.handler(new TcpParser(this::onReply));

    socket.exceptionHandler(this::onException);
    socket.closeHandler(this::onClosed);

    // // w w w. j av a 2  s.c  om
    tryLogin();
}

From source file:io.servicecomb.foundation.vertx.server.TcpServerConnection.java

License:Apache License

public void init(NetSocket netSocket) {
    // currently, socket always be NetSocketImpl
    this.initNetSocket((NetSocketImpl) netSocket);

    String remoteAddress = netSocket.remoteAddress().toString();
    LOGGER.info("connect from {}, in thread {}", remoteAddress, Thread.currentThread().getName());
    netSocket.exceptionHandler(e -> {
        LOGGER.error("disconected from {}, in thread {}, cause {}", remoteAddress,
                Thread.currentThread().getName(), e.getMessage());
    });/*from  w ww.  j  a v  a2  s  .c o m*/
    netSocket.closeHandler(Void -> {
        LOGGER.error("disconected from {}, in thread {}", remoteAddress, Thread.currentThread().getName());
    });

    netSocket.handler(splitter);
}

From source file:org.apache.servicecomb.foundation.vertx.client.tcp.TcpClientConnection.java

License:Apache License

private void onConnectSuccess(NetSocket socket) {
    LOGGER.info("connected to address {} success in thread {}.", socketAddress.toString(),
            Thread.currentThread().getName());
    // currently, socket always be NetSocketImpl
    this.initNetSocket((NetSocketImpl) socket);
    socket.handler(new TcpParser(this::onReply));

    socket.exceptionHandler(this::onException);
    socket.closeHandler(this::onClosed);

    // /*  w ww.  j a  v  a2  s .  c o  m*/
    tryLogin();
}

From source file:org.apache.servicecomb.foundation.vertx.server.TcpServerConnection.java

License:Apache License

public void init(NetSocket netSocket, AtomicInteger connectedCounter) {
    // currently, socket always be NetSocketImpl
    this.initNetSocket((NetSocketImpl) netSocket);

    String remoteAddress = netSocket.remoteAddress().toString();
    LOGGER.info("connect from {}, in thread {}", remoteAddress, Thread.currentThread().getName());
    netSocket.exceptionHandler(e -> {
        LOGGER.error("disconected from {}, in thread {}, cause {}", remoteAddress,
                Thread.currentThread().getName(), e.getMessage());
    });//  ww w. ja  v a2  s  .  c o m
    netSocket.closeHandler(Void -> {
        LOGGER.error("disconected from {}, in thread {}", remoteAddress, Thread.currentThread().getName());

        int connectedCount = connectedCounter.decrementAndGet();
        EventManager.post(
                new ClientEvent(remoteAddress, ConnectionEvent.Closed, TransportType.Highway, connectedCount));
    });

    netSocket.handler(splitter);
}

From source file:shadowsocks.vertxio.ClientHandler.java

License:Apache License

private void setFinishHandler(NetSocket socket) {
    socket.closeHandler(v -> {
        destory();/*from  w w  w . java 2  s  . c o  m*/
    });
    socket.endHandler(v -> {
        destory();
    });
    socket.exceptionHandler(e -> {
        log.error("Catch Exception.", e);
        destory();
    });
}