我们为我们网站上的用户提供定制的Flash / HTML5视频播放器。我目前正在为具有“次优”带宽的用户充实经验 - 基本上我们希望客户端代码能够检测由于过度缓冲导致的糟糕用户体验。我想在本地开发环境中测试这个“带宽不足”的处理代码。
有没有人知道在本地环境中模拟“带宽不足”的良好技术以进行测试?
更具体地说,我的本地浏览器连接到具有uWSGI,nginx和python / django实例的虚拟机,我希望能够在从这些系统传送内容时注入任意数量的延迟。 (我主要关心的是使用nginx,它进行视频内容传送/流式传输)。
编辑:开发环境可能与Mac OS X相关。
答案 0 :(得分:16)
只需使用nginx的配置。
虽然OS X Lion的网络链接调节器按预期工作,但当我真正只是尝试测试Web应用程序的一部分行为时,它仍然是恼人的 - 即缓慢的视频缓冲处理系统
因此,我发现在我的nginx.conf
文件中设置速率限制更加方便,例如:
location ~ /files/(.*\.(mp4|m4v|mov))$ {
...
limit_rate 50k; # <-- Limit download rate per connection to 50kbps
...
}
编辑:请参阅nginx HttpCoreModule docs。
答案 1 :(得分:9)
FreeBSD是Mac OS的祖先,因此您可以使用名为 ipfw 的内置强大防火墙。 它可以用于许多不同的情况,例如模拟低带宽。使用您自己的IP地址环回(127.0.0.1)或远程服务器(在这种情况下为8.8.8.8)。
我们对网络应用程序进行了视频采访,所以我想分享我们的模拟连接错误的经验,请参阅下面的示例:
$ sudo su
$ ipfw show
$ ipfw pipe 1 config delay 600ms bw 256kbit/s
$ ipfw add pipe 1 dst-ip 8.8.8.8 dst-port 80
$ ipfw flush
ipfw 管道允许您使用延迟, bw 甚至 prob 来模拟缓慢且不稳定的连接模拟数据包丢失。
答案 2 :(得分:5)
我刚刚找到了Mac OS X Network Link Conditioner,但我还不确定它是否适用于loopback
,我需要这样做。
答案 3 :(得分:1)
我正在使用此程序NetLimiter来模拟“带宽不足”。它不是免费的,但有一个运行良好的试用版。仅适用于Windows :(