deepstream.io-client-java icon indicating copy to clipboard operation
deepstream.io-client-java copied to clipboard

deepstream.io-client-java v2+ not able to login API 21-

Open GBR-422777 opened this issue 8 years ago • 0 comments

deepStreamUtils.getClient().login() is not working on API 21, the same code runs perfectly along with subscribing to records on devices with newer APIs

After checking the code, weird thing is on API 21- devices

/** * Authenticate the user connection * @param authParameters The authentication parameters to send to deepstream * @param loginCallback The callback for a successful / unsuccessful login attempt * connection */ @ObjectiveCName("authenticate:loginCallback:") void authenticate(JsonElement authParameters, DeepstreamClient.LoginCallback loginCallback) { this.loginCallback = loginCallback;

    if(authParameters != null) {
        this.authParameters = authParameters;
    } else {
        this.authParameters = new JsonObject();
        this.connectionState=ConnectionState.AWAITING_AUTHENTICATION;
    }

    if( this.tooManyAuthAttempts || this.challengeDenied ) {
        this.client.onError( Topic.ERROR, Event.IS_CLOSED, "The client\'s connection was closed" );
        this.loginCallback.loginFailed(Event.IS_CLOSED, "The client\'s connection was closed");
        return;
    }

    if( this.connectionState == ConnectionState.AWAITING_AUTHENTICATION ) { **//This Always Resolves to solved, with this.connectionState being in ConnectionState.CLOSED**
        this.sendAuthMessage();
    }
}

Whereas devices with API 22+: f( this.connectionState == ConnectionState.AWAITING_AUTHENTICATION ) { **//This resolves to being True. **

I hope this helps

GBR-422777 avatar Dec 20 '17 11:12 GBR-422777