in src/main/java/com/alibaba/cloudapi/sdk/client/WebSocketApiClient.java [416:445]
private boolean preSendWebsocketCommandApi(final ApiRequest apiRequest , final ApiCallback apiCallback){
if(WebSocketApiType.REGISTER == apiRequest.getWebSocketApiType()) {
try {
if (null != registerLatch.getObj() && !registerLatch.getObj().await(10, TimeUnit.SECONDS)) {
Thread.sleep(5000);
close();
apiCallback.onFailure(apiRequest, new SdkException("WebSocket conection lost , connecting"));
return false;
}
} catch (InterruptedException ex) {
throw new SdkException("WebSocket register failed ", ex);
} finally {
registerLatch.setObj(null);
}
if (!registerCommandSuccess.getObj()) {
apiCallback.onFailure(null, new SdkException("Register Comand return error :" + errorMessage.getObj()));
return false;
}
lastRegisterReqeust = apiRequest.duplicate();
lastRegisterCallback = apiCallback;
}
apiRequest.addHeader(SdkConstant.CLOUDAPI_X_CA_WEBSOCKET_API_TYPE, apiRequest.getWebSocketApiType().toString());
return true;
}