我正在尝试在NodeJS应用程序中请求Binance API https://api.binance.com/api/v3/ping,以便进行一些交易。我正在使用axios请求API
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 ms左右。根据“文档”,来自美国的请求应该比欧盟更快(~ 10 ms),因为那里有一些Binance服务器。有没有办法通过使用另一个库或另一个模式来缩短响应时间?
发布于 2021-04-06 15:38:41
例如,我会从尝试使用Postman或测试其实际速度的工具来执行请求开始。
在此之后,我不会使用axios Npm,而是使用常规的fetch request。
另外,检查您的Heroku服务器的速度(本地和服务器之间的区别)
发布于 2021-04-06 21:01:09
所以,如果你有3000公里的距离,等于3* 10^6米,光速是3* 10 ^8米/秒,这是3*10^6 / 3*10^8 =10^-2 (.01 s),也就是10毫秒(10 * 10 ^ -3)。因此,当你计算发送和接收的往返时间时,它将是20ms的两倍,这是你能得到的最快速度。我没有包括路由和其他时间,apis也有自己的响应时间(处理你的请求的时间).If heroku服务器离你的binance服务器很远,即使它在美国,你也不能得到想要的速度。
https://stackoverflow.com/questions/66964330
复制相似问题