Javascript 测试延迟逻辑问题

Javascript 测试延迟逻辑问题,javascript,node.js,browser,client,latency,Javascript,Node.js,Browser,Client,Latency,我一直在尝试测试我的服务器和客户机的延迟,但我不确定我的逻辑是否正确-我正在用nodejs服务器进行测试 现在,客户端首先创建一个随机字符串并初始化开始时间: random = uuid.v4(); var startTime = new Date(); 在此之后,将向服务器发送带有随机字符串&startTime的“ping”消息。 服务器接收到“ping”消息,然后将“ping”消息发送回发送该消息的客户端,该客户端包含随机字符串 现在,客户端应该从服务器接收“ping”,并检查随机字符串是

我一直在尝试测试我的服务器和客户机的延迟,但我不确定我的逻辑是否正确-我正在用nodejs服务器进行测试

现在,客户端首先创建一个随机字符串并初始化开始时间:

random = uuid.v4();
var startTime = new Date();
在此之后,将向服务器发送带有随机字符串&startTime的“ping”消息。 服务器接收到“ping”消息,然后将“ping”消息发送回发送该消息的客户端,该客户端包含随机字符串

现在,客户端应该从服务器接收“ping”,并检查随机字符串是否与其创建的字符串匹配

var endTime = new Date();

if (message.random == random) {
  var startTime = message.start1;
  ping = endTime.getTime() - startTime;
}
我的问题是,我不确定这是否是用本地存储在客户机上的随机字符串ping服务器的最佳方法

当客户端每1000毫秒发送一次“ping”消息,但尝试100毫秒或2+个客户端时,此设置无效。这是因为当发送下一个“ping”消息时,客户端上的var random将被覆盖


有什么想法或建议吗?:]

简单:在第一个回来之前不要发送下一个。哈哈,谢谢IDK,为什么我没有考虑等待,但这确实使很多你也可以使用一个函数来生成请求,并定义一个回调函数,这两个函数都在新的包装器函数中,它可以被明智地称为RunRevestor()。这样,它可以被多次调用,并且每个“random”副本都将是该回调的私有副本。这也会起作用,但我不确定如何或甚至是否可以使用我用作信号后端的pubnub设置它。我确实喜欢这个想法&如果时间允许,我可能会尝试建立这个想法。再次感谢!:]嗯,pubnub是一个完全不同的问题,它不像ajax那样是一个传统的往返过程,它是双向的,数据可以在任何时候来来去去。在这种情况下,您可以将随机数据存储在集合中,称之为randoms:randoms[random]=new Date();然后在on()处理程序中,询问(messages[message.random]){console.log(“lag”,new Date()-messages[message.random]);},而不是匹配单个大小写。