protected void sendAsyncRequest()

in src/main/java/com/alibaba/cloudapi/sdk/client/WebSocketApiClient.java [382:414]


    protected void sendAsyncRequest(final ApiRequest apiRequest , final ApiCallback apiCallback){
        checkIsInit();

        synchronized (connectionLock) {
            if (null != connectLatch.getObj() && connectLatch.getObj().getCount() == 1) {
                try {
                    connectLatch.getObj().await(10, TimeUnit.SECONDS);
                } catch (InterruptedException ex) {
                    throw new SdkException("WebSocket connect server failed ", ex);
                } finally {
                    connectLatch.setObj(null);
                }
            }

            if (status == WebSocketConnectStatus.LOST_CONNECTION) {
                apiCallback.onFailure(apiRequest, new SdkException("WebSocket conection lost , connecting"));
                return;
            }

            if (WebSocketApiType.COMMON != apiRequest.getWebSocketApiType()) {
                if(!preSendWebsocketCommandApi(apiRequest , apiCallback)) {
                    return;
                }
            }

            Integer seqNumber = seq.getAndIncrement();
            apiRequest.addHeader(SdkConstant.CLOUDAPI_X_CA_SEQ, seqNumber.toString());
            callbackManager.add(seqNumber, new ApiContext(apiCallback, apiRequest));
            String request = buildRequest(apiRequest);
             webSocketRef.getObj().send(request);
        }

    }