2010-03-26 40 views
0

我正在使用Flash Builder 4 Beta 2.我将它连接到PHP服务。我设置的方式是使用向导,所以我实际上没有编写代码来连接它。该服务如下所示:Flex - 增加PHP服务函数调用的超时

package services.flash 
{ 
import mx.rpc.AsyncToken; 
import com.adobe.fiber.core.model_internal; 
import mx.rpc.AbstractOperation; 
import valueObjects.CustomDatatype8; 
import valueObjects.NewUsageData; 
import mx.collections.ItemResponder; 
import mx.rpc.remoting.RemoteObject; 
import mx.rpc.remoting.Operation; 
import com.adobe.fiber.services.wrapper.RemoteObjectServiceWrapper; 
import com.adobe.fiber.valueobjects.AvailablePropertyIterator; 
import com.adobe.serializers.utility.TypeUtility; 

[ExcludeClass] 
internal class _Super_FLASH extends RemoteObjectServiceWrapper 
{  

    // Constructor 
    public function _Super_FLASH() 
    { 
     // initialize service control 
     _serviceControl = new RemoteObject(); 

     var operations:Object = new Object(); 
     var operation:Operation;   

     operation = new Operation(null, "sendCommand"); 
     operation.resultType = Object;   
     operations["sendCommand"] = operation; 

     ... 
    } 
} 

我正在调用的函数之一从MySQL数据库中提取用户。目前大约有30,000个用户。当获取超过22,000行时,该服务似乎超时,我收到“确认收到之前断开的通道”错误。如果我从浏览器中调用PHP脚本,它会全部提取它们,但是完全没有问题。我曾试着增加PHP脚本中的超时时间(这种方式无效),但显然这不是问题,因为浏览器能够毫无问题地将它们拉出来。

有没有办法在Flash Builder中增加PHP服务的超时时间?说到Flash,我有点小气,所以请描述一下。提前致谢!

回答

1

所有远程对象都有一个requestTimeout参数。只需将其设置为任何需要的。

_serviceControl.requestTimeout = 1000; 
+1

有趣......这根本不先解决这个问题对我来说,而是试图测试这个时候我的超时设置为5秒,我得到一个不同的错误信息 - “为发送的请求超时没有收到来自服务器的回应的消息。“这意味着Flash的调用不是超时,否则它首先会给我这个信息。我尝试在PHP脚本(重新设置)中设置超时,现在突然它似乎喜欢它。您的回复仍然准确无误,非常有用,谢谢! – Travesty3 2010-03-29 15:43:42