Javascript 使用NodeJS请求API的最快方法
我试图在NodeJS应用程序中请求Binance API,以便进行一些交易。我正在使用axios请求APIJavascript 使用NodeJS请求API的最快方法,javascript,node.js,axios,binance,Javascript,Node.js,Axios,Binance,我试图在NodeJS应用程序中请求Binance API,以便进行一些交易。我正在使用axios请求API const testBinanceAPIResponseTime = async () => { try { await axios.get("https://api.binance.com/api/v3/ping"); } catch (err) { throw new Error(err); } }; 我添加了一个拦截器来测量响应
const testBinanceAPIResponseTime = async () => {
try {
await axios.get("https://api.binance.com/api/v3/ping");
} catch (err) {
throw new Error(err);
}
};
我添加了一个拦截器来测量响应时间
axios.interceptors.request.use((x) => {
x.meta = x.meta || {};
x.meta.requestStartedAt = new Date().getTime();
return x;
});
axios.interceptors.response.use((x) => {
console.log(
`Execution time for: ${x.config.url} - ${
new Date().getTime() - x.config.meta.requestStartedAt
} ms`
);
return x;
});
我的问题是,无论我是在Heroku EU还是Heroku US上部署代码,响应时间总是在
220毫秒左右。根据“文档”,来自我们的请求应该比欧盟快很多(~10ms
),因为那里有一些二进制服务器。有没有一种方法可以通过使用另一个lib或另一种模式来提高响应时间?我会首先尝试使用邮递员
或者一个工具来测试它的实际速度
之后,我不会使用axios
Npm,而是使用常规的fetch请求
此外,请检查Heroku服务器的速度(本地和服务器上的差异)您的数据传输速度不能超过光速。
所以如果你有3000公里的距离,等于3*10^6米,光速是3*10^8米/秒timetake=distance/velocity
,这是3*10^6/3*10^8=10^-2(.01秒)
这是10毫秒(10*10^-3)。因此,当您计算发送和接收的rount行程时间时,它将是两倍的20毫秒,这是您可以获得的最快时间。我没有包括路由和其他时间,API也有自己的响应时间(您请求的处理时间)。如果heroku服务器远离您的binance服务器,即使它在美国,您无法获得所需的速度。如果可能,您可以尝试缓存响应。您确定可以在10毫秒内获得响应。您是否在浏览器或其他应用程序中看到过这种响应时间?我非常确定,这就是人们在Python@NamitPiriyaI中所说的,我在本地尝试了NodeJS,得到了相同的响应时间。我在电脑上试过邮递员,我得到了同样的回复时间。你说的“Heroku服务器的速度”是什么意思?我想这不是你的问题,不幸的是。试试api测试性能,但我想问题是api我忘了提到我正在用我的欧盟计算机测试它