如何使用 Javascript 测量实时互联网速度?

How to measure real time internet speed using Javascript?

我正在尝试弄清楚如何使用 JavaScript 检测互联网下载和上传速度。

另一个 Whosebug 线程中使用虚拟下载文件发布的另一个解决方案有一些缺点(可以在其评论部分找到)并且不适合生产级代码。

使用 node.js 检测 Internet 下载和上传速度的最佳做法是什么?使用图书馆是可以的。我想使用这个值来绘制一个实时图表,就像在任务管理器>性能>“Wi-fi”图表中找到的那样。

正如@Abion47 所说,“每个 download/upload 测试都将是“download/upload 一些已知大小和传输时间的虚拟文件的变体”。

因此我使用 fast-speed-test-api 解决了这个问题。 API 没有包含太多文档,所以我在下面包含了我的工作示例:

const FastSpeedtest = require("fast-speedtest-api");
   
const myPromise = fastnetApi();
myPromise.then(res =>{
  console.log('it returned:', res);
  return res 
})

function fastnetApi() {

    let speedtest = new FastSpeedtest({
        token: "YOUR-TOKEN(CAN BE FOUND IN THE GITHUB DOC)", //**** required
        verbose: false, // default: false
        timeout: 5000, // default: 5000
        https: true, // default: true
        urlCount: 5, // default: 5 
        bufferSize: 8, // default: 8 
        unit: FastSpeedtest.UNITS.Mbps // default: Bps
    });

    return speedtest.getSpeed().then(s => {
        console.log(`Speed: ${s} Mbps`);
    console.log(typeof s)
    return s;
    }).catch(e => {
        console.error(e.message);
    });
}