Example: Asynchronous Conversations

//Automatically generated file for implementing asynchronous callback functions.
//You can modify the automatically generated callback implementations or add new ones.
//Asynchronous callback functions can be registered using web_reg_async_attributes steps.
function Push_0_RequestCB()
{

	lr.outputMessage(">>> Push_0_RequestCB");

}

function Push_0_ResponseHeadersCB(
	aHttpStatusCode,
	aAccumulatedHeadersStr,
	aAccumulatedHeadersLen)
{
	//Enter your implementation for ResponseHeadersCB() here.

	lr.outputMessage(">>> Push_0_ResponseHeadersCB " + aHttpStatusCode + " / " 
	                 + aAccumulatedHeadersStr.substr(0, 10) + " / " 
					 + aAccumulatedHeadersLen);

}

function Push_0_ResponseBodyBufferCB(
	aLastBufferStr,
	aLastBufferLen,
	aAccumulatedStr,
	aAccumulatedLen,
	aHttpStatusCode)
{
	//Enter your implementation for ResponseBodyBufferCB() here.

	lr.outputMessage(">>> Push_0_ResponseBodyBufferCB "  + aLastBufferStr.substr(0, 20) 
	                    + " / " + aLastBufferLen + " / " + aAccumulatedStr.substr(0, 20) 
						+ " / " + aAccumulatedLen + " / " + aHttpStatusCode);

}

function Push_0_ResponseCB(
	aResponseHeadersStr,
	aResponseHeadersLen,
	aResponseBodyStr,
	aResponseBodyLen,
	aHttpStatusCode)
{
	//Enter your implementation for ResponseCB() here.

	//TODO - To make the script wait for a specific response, use web_sync in the relevant Action file.
	//See the Modifying Callbacks section in the VuGen user guide for more details.
	lr.outputMessage(">>> Push_0_ResponseCB " + aResponseHeadersStr.substr(0, 20) + " / " 
	                     + aResponseHeadersLen + " / " + aResponseBodyStr.substr(0, 20) + " / " 
						 + aResponseBodyLen + " / " + aHttpStatusCode);

}


function Action()
{

	web.regAsyncAttributes(
		{
			id: "Push_0",
	        pattern: "Push",
	        url: "http://myserver.mycompany.com/cgi-bin/nph-pushJS_FF.exe",
			//requestCB: =Push_0_RequestCB",
			responseHeadersCB:	'Push_0_ResponseHeadersCB',
	        responseBodyBufferCB:
				function Push_0_ResponseBodyBufferCB(
					aLastBufferStr,
					aLastBufferLen,
					aAccumulatedStr,
					aAccumulatedLen,
					aHttpStatusCode)
				{
					//Enter your implementation for ResponseBodyBufferCB() here.
					lr.outputMessage(">>> Push_0_ResponseBodyBufferCB " + aLastBufferStr.substr(0, 20) 
					                 + " / " + aLastBufferLen + " / " + aAccumulatedStr.substr(0, 20) 
									 + " / " + aAccumulatedLen + " / " + aHttpStatusCode);
				}
		});

	web.url(
		{ 
			name: "push_to_iframe_new_object_FF.html",
			url: "http://myserver.mycompany.com/webgui/push/push_to_iframe_new_object_FF.html",
			resource: "0",
			recContentType: "text/html",
			snapshot: "t1.inf",
			mode: "HTML",
		});
		

	lr.thinkTime(30);
	web.stopAsync("Push_0");	

	return 1
}