我正在尝试寻找使用PHP或Javascript测试网络速度的方法。
这是可能的吗?
我希望能够测试速度并动态地决定向客户端传输多少内容...
需要指出的是,我主要讨论移动设备。大多数宽带连接差异很小,因此我旨在判断某人是否连接到WiFi网络或在蜂窝数据网络上遇到困难。
我正在尝试寻找使用PHP或Javascript测试网络速度的方法。
这是可能的吗?
我希望能够测试速度并动态地决定向客户端传输多少内容...
需要指出的是,我主要讨论移动设备。大多数宽带连接差异很小,因此我旨在判断某人是否连接到WiFi网络或在蜂窝数据网络上遇到困难。
进行ajax请求以下载固定大小的数据块,并检查时间以获得大致速度的概念:
var start = new Date();
$.ajax(....);
var end = new Date();
var elapsed = end.getTime() - start.getTime(); // elapsed time in milliseconds.
error:
/setTimeout
默认值。 - Brad Christie我认为,你可以使用JS -> PHP -> JS调用并计时响应,但这相当不准确。此外,你需要使用大量的数据(超额带宽使用问题),并且由于存在/不存在于浏览器之间的服务器标头,永远不会得到明确的答案。还有一个关于服务提供商(咳咳康卡斯特咳咳)的问题,他们在前几秒钟内为你提供12兆比特的速度,但之后将你降至3兆比特,因此现在你的“测试”会说他们在OC线上,但流本身现在会有数据亏损并且会不断缓冲。
最好的解决方案是将逻辑构建到流媒体协议中,根据进入的数据量进行调整。也许它开始时以低带宽质量开始,并在注意到缓冲区增长速度快于数据播放时提高门槛(这就是Hulu、YouTube或Amazon视频所做的)。