Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex AS3中的TCP流控制?_Apache Flex_Flash_Actionscript 3_Sockets_Tcp - Fatal编程技术网

Apache flex AS3中的TCP流控制?

Apache flex AS3中的TCP流控制?,apache-flex,flash,actionscript-3,sockets,tcp,Apache Flex,Flash,Actionscript 3,Sockets,Tcp,我目前正在为一个预先存在的服务/标准开发一个Flash socket客户端。该服务使用TCP流控制来控制自身,Flash套接字正在以尽可能快的速度读取所有内容,尽管无法以接收的速度处理这些内容。这会导致套接字上可用的字节数不断增加,服务器永远不会知道客户端落后了 简而言之,有没有办法限制Flash套接字对象可用字节的大小或以其他方式限制它? 注意:重写服务器在当前不是一个可行的选择,因为它是一个标准,如果需要服务器端更改,客户端的实用程序将大幅下降我认为这是不可能的。AS3中没有可以在TCP级别

我目前正在为一个预先存在的服务/标准开发一个Flash socket客户端。该服务使用TCP流控制来控制自身,Flash套接字正在以尽可能快的速度读取所有内容,尽管无法以接收的速度处理这些内容。这会导致套接字上可用的字节数不断增加,服务器永远不会知道客户端落后了

简而言之,有没有办法限制Flash套接字对象可用字节的大小或以其他方式限制它?


注意:重写服务器在当前不是一个可行的选择,因为它是一个标准,如果需要服务器端更改,客户端的实用程序将大幅下降

我认为这是不可能的。AS3中没有可以在TCP级别上使用字节进行操作的低级API。但你们可以在更高的层次上实施节流。
例如:在将字节放入Socket的byteArray之前,请检查在过去几秒钟内已将多少数据放入其中。如果此值太高-推迟操作。

经过研究,我发现当系统上的CPU耗尽时,Actionscript套接字类将开始节流(可能是由于资源耗尽/响应时间缓慢)


这实际上解决了我的问题,因为我已经编写了代码,它在应用程序“想要”的每秒帧数和套接字中可用的字节数之间取得了平衡。如果bytesAvailable太高,应用程序将不间断处理并将CPU驱动到100%,最终导致套接字速度减慢。

我不想为您这样做,以防万一。您可能希望将flex3重新标记为flex,我认为有更多的人在监视该标记。不幸的是,由于实现限制,我无法接触服务器部分。我试图避免使用某种中继/代理服务器,但这看起来是不可避免的。