List of usage examples for io.vertx.core.net NetSocket exceptionHandler
@Override
NetSocket exceptionHandler(Handler<Throwable> handler);
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(); });//from w w w. j a v a 2 s . com 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;//w ww. j a va 2s. c o m 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:com.sibvisions.rad.remote.vertx.NetSocketConnection.java
License:Apache License
/** * {@inheritDoc}//from ww w. j a va 2 s .co m */ @Override public void open(ConnectionInfo pConnectionInfo) throws Throwable { closeSocket(); NetClientOptions options = new NetClientOptions(); options.setReconnectAttempts(3); options.setConnectTimeout(5000); options.setReconnectInterval(1000); client = vertx.createNetClient(options); client.connect(iPort, sHost, new Handler<AsyncResult<NetSocket>>() { public void handle(final AsyncResult<NetSocket> pCommunication) { NetSocket sock = pCommunication.result(); if (sock != null) { sock.handler(new Handler<Buffer>() { public void handle(Buffer pBuffer) { if (inputStream != null) { inputStream.receive(pBuffer); } } }); sock.exceptionHandler(new Handler<Throwable>() { public void handle(Throwable pException) { if (inputStream != null) { inputStream.finish(); } } }); sock.endHandler(new Handler<Void>() { public void handle(Void pParam) { if (inputStream != null) { inputStream.finish(); } } }); } synchronized (NetSocketConnection.this) { if (pCommunication.succeeded()) { socket = sock; } else { LoggerFactory.getInstance(NetSocketConnection.class).error(pCommunication.cause()); socket = null; } NetSocketConnection.this.notify(); } } }); synchronized (this) { if (socket == null) { wait(15000); } } if (socket == null) { throw new ConnectException("Can't establish connection!"); } socket.write(Buffer.buffer(new byte[] { STREAM_COMMUNICATION })); super.open(pConnectionInfo); if (oInitialConId == null) { oInitialConId = pConnectionInfo.getConnectionId(); } }
From source file:com.sibvisions.rad.remote.vertx.NetSocketConnection.java
License:Apache License
/** * Opens a new transfer client./*from www .j a va2 s . c o m*/ * * @throws IOException if opening failed */ private void openTransfer() throws IOException { closeTransfer(); if (socketTransfer != null) { socketTransfer.close(); socketTransfer = null; } NetClientOptions options = new NetClientOptions(); options.setReconnectAttempts(3); options.setReconnectInterval(1000); clientTransfer = vertx.createNetClient(options); isTransfer = new SyncedInputStream(); clientTransfer.connect(iPort, sHost, new Handler<AsyncResult<NetSocket>>() { public void handle(AsyncResult<NetSocket> pCommunication) { NetSocket sock = pCommunication.result(); if (sock != null) { sock.handler(new Handler<Buffer>() { public void handle(Buffer pBuffer) { if (isTransfer != null) { isTransfer.receive(pBuffer); } } }); sock.exceptionHandler(new Handler<Throwable>() { public void handle(Throwable pException) { if (isTransfer != null) { isTransfer.finish(); } } }); sock.endHandler(new Handler<Void>() { public void handle(Void pParam) { if (isTransfer != null) { isTransfer.finish(); } } }); } synchronized (clientTransfer) { socketTransfer = sock; clientTransfer.notify(); } } }); try { synchronized (clientTransfer) { if (socketTransfer == null) { clientTransfer.wait(15000); } } } catch (InterruptedException ie) { throw new IOException(ie); } if (socketTransfer == null) { throw new ConnectException("Can't establish transfer connection!"); } }
From source file:com.sibvisions.vertx.NetSocketServer.java
License:Apache License
/** * Starts the server to listen on the configured port. *//*from www . j a v a 2 s . c o m*/ public void start() { if (vertx == null) { vertx = Vertx.vertx(); } NetServerOptions options = new NetServerOptions(); options.setTcpKeepAlive(true); options.setTcpNoDelay(true); srvVertx = vertx.createNetServer(options); srvVertx.connectHandler(new Handler<NetSocket>() { public void handle(NetSocket pSocket) { AbstractDataHandler dataHandler = new NetDataHandler(srvJVx, pSocket); pSocket.handler(dataHandler); pSocket.endHandler(new StopHandler(dataHandler)); pSocket.exceptionHandler(new ExceptionHandler(dataHandler)); } }); srvVertx.listen(iPort, sInterface); }
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); // /*from www. j a v a 2s.co m*/ 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()); });// ww w . j a va 2 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); // // ww w . jav a 2s .co 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()); });/*from w w w . j ava 2s .c om*/ 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 -> {//from w ww . ja v a2s . co m destory(); }); socket.endHandler(v -> { destory(); }); socket.exceptionHandler(e -> { log.error("Catch Exception.", e); destory(); }); }