javascript - 在 JavaScript 中计算数据包传输时间

标签 javascript timer packet

我的服务器时不时地向浏览器客户端广播一个数据包。

有什么方法可以计算出数据包从以下位置花费了多长时间:

server --> client

我正在尝试计时,所以理想情况下我的 JavaScript 函数应该是这样的:

var travelTime = {amount of time it took packet to get to me};
setTimeout('myFunction()', 3000 + travelTime);

此外,我没有请求此数据包,因此我无法记录发送时间,也无法在客户端记录接收时间。这个数据包请求不是双向的,因为我与服务器建立了一个套接字,并且服务器能够向我发送一个数据包。

任何建议都值得采纳!

编辑: cometd 式连接

最佳答案

您可以在数据包中包含时间戳,但这取决于两个系统是否同步到同一时钟(例如使用 NTP)。如果您无法控制服务器和客户端,那么如果没有往返,您所要求的就是不可能的。即使使用 NTP 同步,也会存在一些抖动,具体取决于时钟同步的频率。对于往返,您的延迟计算无论如何都只是一个估计值,随着网络条件的变化,可能会出现严重偏差,除非客户端和服务器位于同一 LAN 上。

关于javascript - 在 JavaScript 中计算数据包传输时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022518/

相关文章:

javascript - array.map 不是函数

javascript - 当组件在 react 中卸载时,我应该删除对 DOM 元素的引用吗?

c# - 我想每分钟运行一个从我的 OnAppearing() 开始的方法。我需要将其作为任务运行吗?

c++ - Linux 的 Windows 过滤平台等效?

android - 计算丢包、抖动和延迟

javascript - 需要一个包含react-native中的var的var

javascript - Firefox 扩展 - 最佳实践

C# 如何在一天中的特定时间触发事件?

java - 我如何根据输入到数字字段中的数字在切换按钮上设置延迟?

ip - 为什么IP数据包中有填充?