Share this page

# Example: web_sync

In this example, web_sync is used to suspend the script run until the parameter is created in the call-back routine.

    //Register a polling pattern
        web_reg_async_attributes("ID=LongPoll_0",
            "URL/IC=http://my_server/cgi-bin/SLEEP_random_TIME.asp?1332922209853",
            "Pattern=LongPoll",
            "RequestCB=LongPoll_0_RequestCB",
            "ResponseBodyBufferCB=LongPoll_0_ResponseBodyBufferCB",
            "ResponseCB=LongPoll_0_ResponseCB",
            LAST);

    //Start the polling pattern
        web_url("sleep_random_time.asp",
            "URL=http://my_server/cgi-bin/sleep_random_time.asp?1332922209853",
            "Resource=0",
            "RecContentType=text/html",
            "Referer=http://my_server/webgui/polling/xmlhttprequest_long_polling_async_get.html",
            "Snapshot=t3.inf",
            "Mode=HTML",
            LAST);

    //Start the transaction
         lr_start_transaction("long poll");

    //Wait for parameter to be created (see below in AsyncCallbacks.c)
        web_sync("ParamCreated=ready","RetryIntervalMs=3000","RetryTimeoutMs=120000",LAST);

        wait_time = lr_get_transaction_duration("long poll");
        lr_end_transaction("long poll", LR_AUTO);

        web_stop_async("ID=LongPoll_0",
        LAST);

        lr_free_parameter("ready");

From AsyncCallbacks.c

    //The response call-back is called after each long-polling response is received.
        int LongPoll_0_ResponseCB(
        const char * aResponseHeadersStr,
        int          aResponseHeadersLen,
        const char * aResponseBodyStr,
        int          aResponseBodyLen,
        int          aHttpStatusCode)
        {
        //enter your implementation for ResponseCB() here

    //Increment long-polling response counter
        counter++;
        lr_output_message("@@@ Long poll response received in [%s] ms", aResponseBodyStr);

    //Set parameter value to indicate that 10 long-polling responses were received.
        if (counter>10 || (strcmp(aResponseBodyStr,"6000")==0))
            lr_save_string("OK","ready");

        return WEB_ASYNC_CB_RC_OK;
        }

Tips to improve your search results... VuGen Function Reference Version 25.1-25.3 Function Reference 25.1-25.3 All View Local Help Center View Online Help Center Version: