PHP中的节流带宽

时间:2015-08-04 02:38:48

标签: php bandwidth throttling

有没有办法在纯PHP中限制页面的传送?

我知道可以为下载文件完成,但我正在寻找一般HTML页面的实现。

我正在寻找可以发送的标题类型

header('Throttle:300kb-ps')

2 个答案:

答案 0 :(得分:1)

如果您要使用流API(例如fwrite()),则可以。然后,您可以注册令牌桶流过滤器。我已在bandwidth-throttle/bandwidth-throttle编译了所有内容:

use bandwidthThrottle\BandwidthThrottle;

$out = fopen("php://output", "w");

$throttle = new BandwidthThrottle();
$throttle->setRate(100, BandwidthThrottle::KIBIBYTES); // Set limit to 100KiB/s
$throttle->throttle($out);

fwrite($out, "<html>Your page</html>");

答案 1 :(得分:0)

如果您想要&#34;带宽速率限制,请查看apache mod_ratelimit&#34;页面。它适用于每个请求,因此您需要确定发往哪个请求,然后根据需要设置限制。

Web服务器是执行此操作的地方,您只需使用php来控制它。

另外,根据我的评论,如果它适用于API和网络服务,我会请求速率限制&#34;他们。当他们在最后t秒内完成n个请求时,返回Server Busy。

带宽速率限制仅对大型响应有效,例如对于数据传输的KB。对于小型响应,例如API响应,它不会产生任何影响。