网速是多少?
每个人都希望下载的速度越来越快,上传文件的速度也越来越快。但是这是什么意思?当您下载或上传某些内容时,您和服务器以特定方式进行通信。你们都有互联网连接,但在大多数情况下,您的速度比服务器的连接慢。要理解这一点,只需遵循以下逻辑:
您正在与其他数千名用户一起玩一些视频游戏。您(和其他玩家连接)每秒可以发送和接收 20 个单位。服务器每秒最多可以发送 200 万个单位。这样每个人都很开心并且在线。如果服务器每秒只能发送 20 个单位,那么每个人都会落后,甚至更糟(比如丢包)。
因此,要回答互联网速度是什么,是从向您发送请求到到达服务器、得到响应然后将其返回给您所花费的时间。当然,如果服务器关闭或已完成他的单位空间专用于您,您的请求将被延迟,但这就是互联网的工作方式。
当您下载或流式传输电影时,会发生同样的事情:每次完成下载/流式传输一小部分时,您都在请求新的块。
让我们谈谈一些数字
互联网上的时间以毫秒为单位。如果你只是打开一个终端并做一个简单的ping www.stackoverflow.com 你会得到类似的东西:
Reply from 151.101.1.69: bytes=32 time=36ms TTL=56
Reply from 151.101.1.69: bytes=32 time=36ms TTL=56
Reply from 151.101.1.69: bytes=32 time=36ms TTL=56
Reply from 151.101.1.69: bytes=32 time=36ms TTL=56
time=36ms 是您发送 ping 请求和请求支持您之间经过的时间。
最后
我希望已经清除了一切,在网络上测量时间,是这样的:
- Start counting
- Send a request
- ...
- Wait..
- ...
- Request turned back
- Stop Counting
** 但我的问题是:我可以用角度来做吗?**
答案是……有点。可能有更好的方法可以做到这一点,但几个月前我也想这样做,我想出了这个主意。
假设我们有一个执行请求的服务:
export class MyService{
constructor(
private http: Http
)
public sendRequest(){
return this.http.get(...something);
}
}
我们的主要组件将进行服务注入并计算经过的时间:
export class MyComponent{
public timePassed: any;
constructor(
private service: MyService
)
ngOnInit(): void{
const startingTime = new Date().getTime();
this.service.sendRequest()
.subscribe( res => {
this.timePassed = ((new Date() - startingTime).getTime())/1000;
});
}
}
现在在您的timePassed 变量中,您将获得请求所花费的时间。
正如我所说,由于您的连接速度很慢,或者因为服务器的连接速度很慢,时间可能会发生变化。
您总是必须以互联网速度思考,就像两个人互相交谈一样。总是。
如果您无法将自己的速度与其他人的速度联系起来,那么谈论速度是没有意义的。