Example #1
0
  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;
  }
Example #2
0
  /** 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);
  }