【发布时间】:2019-01-21 17:08:28
【问题描述】:
我正在尝试构建一个应用程序,允许用户在他们连接的 WiFi 网络上运行速度测试。
显然这是可行的。有许多这样的独立测速应用:例如 Speedtest.net 和 Google。
NPM 上有很多速度测试模块,但这些只在服务器上有效,对我的项目没有帮助。
当我对这些模块中的任何一个进行 Webpack / Browserify 并尝试在浏览器中运行代码时,它不起作用。我收到跨域错误。
我需要做什么来执行(可靠的)客户端速度测试?我还没有找到一个明确的例子来实现这样的事情。
理想情况下,我可以使用诸如 speedtest.net 或 Google 之类的第 3 方 API,但如前所述,我在尝试此操作时遇到跨源错误。
【问题讨论】:
-
要从浏览器执行跨源请求,您需要远程服务器允许使用 CORS 进行跨源请求,或者您需要与代码运行同源的代理。
-
顺便说一句,我不确定你在他们连接的 WiFi 网络上运行速度测试是什么意思。
-
@ErickRuizdeChavez 运行速度测试,测试您连接的网络的速度。比如你在speedtest.net点击“GO”按钮,它会测试并报告你网络的上传速度、下载速度和ping。
-
@ErickRuizdeChavez 代理将如何工作?它会测试客户端或代理的网络吗?
-
我记得我不久前(可能是 10 多年)用闪存做了一些基本的下载速度测试。这个想法是在服务器上有一个文件(你事先知道大小),然后根据下载的百分比与经过的时间计算速度。上传速度测试更难,因为直到最后都没有进度报告,当时我们最终获得了 Ookla 的许可。
标签: javascript node.js npm cross-domain speed-test