Datetime Websocket定时:如何获得Websocket消息到达浏览器的确切时间?

Datetime Websocket定时:如何获得Websocket消息到达浏览器的确切时间?,datetime,web-applications,websocket,messaging,Datetime,Web Applications,Websocket,Messaging,我正在编写一个web应用程序,它使用WebSocket在客户端和服务器之间进行双向通信。我主要关心的是用户感知的延迟,因此,我正在尽可能地测量和分析。特别是,我在onmessage()事件中捕获当前时间。这很有用,但我还想知道事件何时被推送到浏览器的事件循环中——这发生在onmessage事件触发之前 在Chrome开发者工具中,我在“网络->帧”选项卡中看到时间,我认为这是事件进入事件循环的时间。但我需要用Javascript以编程方式捕获这一点。你知道怎么做吗 我做了一些“console.l

我正在编写一个web应用程序,它使用WebSocket在客户端和服务器之间进行双向通信。我主要关心的是用户感知的延迟,因此,我正在尽可能地测量和分析。特别是,我在onmessage()事件中捕获当前时间。这很有用,但我还想知道事件何时被推送到浏览器的事件循环中——这发生在onmessage事件触发之前

在Chrome开发者工具中,我在“网络->帧”选项卡中看到时间,我认为这是事件进入事件循环的时间。但我需要用Javascript以编程方式捕获这一点。你知道怎么做吗

我做了一些“console.log”检查,发现在一些情况下,开发人员工具中显示的时间与我在onmessage事件中捕获的时间相差大约10毫秒。我想让我的测量结果显示,差异是否总是小到10毫秒,或者有时差异是否更大,这是由于渲染或页面中发生的其他事情造成的


websocket的浏览器api限制太多,无法公开所需的信息


浏览器开始使用公开计时信息,但该界面只会告诉您与websocket服务器的初始连接的计时信息,它不知道websocket帧的情况

根据您对问题的描述,这是不必要的。http堆栈接收消息和在应用程序中将消息传递给您以便以编程方式记录消息之间的延迟可以忽略不计,并且几乎可以肯定低于javascript日期时间值的精度(您可以使用
性能。现在
,但我怀疑它到底有多精确)


您的延迟将由网络因素和服务器响应时间驱动-如果您能够对这些因素进行合理的测量,您将到达您想要的位置。其他因素可能有助于测量“噪音”-只要它小于您试图测量的值的10%,就没有问题。

您是否真的遇到了使用感知延迟的问题,或者只是受到过早优化的影响?如果您遇到问题,是否每秒发送30k ping?这种ping可能会导致像healthcare.gov这样的网站崩溃。。。最后,大多数人不会在10毫秒内察觉到差异,因此,如果你能够在代码中捕获一个时间,这个时间比你在dev.tools中看到的时间差10毫秒,那就足够了,继续下一个问题。延迟是我主要关心的问题,它实际上正在发生,我一直在寻找减少它的方法,因此,我正在研究不同参数对延迟的影响,如消息大小、物理位置、并发用户数等。。。我之所以提出这个问题,是因为我不确定我的测量值只差10毫秒。浏览器似乎知道消息何时到达,因此我认为可能有一种方法可以捕获此信息。关于30k,这只是我众多实验中的一个。它不一定是典型的消息大小。确定。谢谢分享。