Skip to main content
Participant
October 5, 2011
Question

Adobe AIR HTTP Connection Limit

  • October 5, 2011
  • 1 reply
  • 1223 views

Hello,

I'm working on an Adobe AIR 2.7 application which can upload files to a web server, which is running Apache and PHP. Several files can be uploaded at the same time and the application also calls the web server for various API requests.

The problem I'm having is that if I start two file uploads, while they are in progress any other HTTP requests will time out, which is causing a problem for the application and from a user point of view.

Are Adobe AIR applications limited to 2 HTTP connections, or is something else probably the issue? From searching about this issue I've not found much.

The file uploads are performed by calling the File classes upload method, and the API calls are done using the HTTPService class. The development web server I am using is a WAMP server, however when the application is released it will be talking to a LAMP server.

Thanks,

Grant

Here is the code I'm using to upload the file:

protected function btnAddFile_clickHandler(event:MouseEvent):void
{
    // Create a new File object and display the browse file dialog
    var uploadFile:File = new File();
    uploadFile.browseForOpen("Select File to Upload");
    uploadFile.addEventListener(Event.SELECT, uploadFile_SelectedHandler);
}

private function uploadFile_SelectedHandler(event:Event):void
{
    // Get the File object which was used to select the file
    var uploadFile:File = event.target as File;
    uploadFile.addEventListener(ProgressEvent.PROGRESS, file_progressHandler);
    uploadFile.addEventListener(IOErrorEvent.IO_ERROR, file_ioErrorHandler);
    uploadFile.addEventListener(Event.COMPLETE, file_completeHandler);

    // Create the request URL based on the download URL
    var requestURL:URLRequest = new URLRequest(AppEnvironment.instance.serverHostname + "upload.php");
    requestURL.method = URLRequestMethod.POST;

    // Set the post parameters
    var params:URLVariables = new URLVariables();
    params.name = "filename.ext";
    requestURL.data = params;

    // Start uploading the file to the server
    uploadFile.upload(requestURL, "file");
}

Here is the code for the API calls:

private function sendHTTPPost(apiFile:String, postParams:Object, resultCallback:Function, initialCallerResultCallback:Function):void
{
    var httpService:mx.rpc.http.HTTPService = new mx.rpc.http.HTTPService();
    httpService.url = AppEnvironment.instance.serverHostname + apiFile;
    httpService.method = "POST";
    httpService.requestTimeout = 10;
    httpService.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
    httpService.addEventListener("result", resultCallback);
    httpService.addEventListener("fault", httpFault);
    var token:AsyncToken = httpService.send(postParams);

    // Add the initial caller's result callback function to the token
    token.initialCallerResultCallback = initialCallerResultCallback;
}

This topic has been closed for replies.

1 reply

October 9, 2011

Could you please open a new bug report on this over at bugbase.adobe.com? Please include sample media, code, project or app to help us reproduce the problem. Did this occur on the desktop or mobile device? Finally, once the bug has been added would you mind posting back with the URL so that others affected can add their votes and comments? Thanks!