public XMPPBean Connect(String toJid, IXMPPCallback<ConnectAck> callback) { if (null == _bindingStub || null == callback) return null; ConnectRequest out = new ConnectRequest(); out.setTo(toJid); _bindingStub.sendXMPPBean(out, callback); return out; }
/** Sets up the given connection. */ private CompletableFuture<Connection> setupConnection(Connection connection) { this.connection = connection; connection.closeListener( c -> { if (c.equals(this.connection)) { this.connection = null; } }); connection.exceptionListener( c -> { if (c.equals(this.connection)) { this.connection = null; } }); connection.handler(PublishRequest.class, this::handlePublish); if (id != 0) { ConnectRequest request = ConnectRequest.builder().withSession(id).build(); CompletableFuture<Connection> future = new CompletableFuture<>(); connection .send(request) .whenComplete( (response, error) -> { if (isOpen()) { if (error == null) { future.complete(connection); } else { future.completeExceptionally(error); } } }); return future; } return CompletableFuture.completedFuture(connection); }