gpt4 book ai didi

node.js - socket.io(websockets) 的延迟问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:44 25 4
gpt4 key购买 nike

我们计划使用 node.js 创建实时 SPA,并且正在测试延迟,请访问以下链接:

http://173.200.239.98:6060/

有 2 个区域...当用户将鼠标悬停在右侧文本区域上时,我们将在左侧文本区域中打印延迟,延迟以毫秒为单位。问题是延迟从 0.3 秒到 6 秒不等。网络套接字正常吗?或者我做错了什么?

注意:- 服务器位于美国底特律,我正在从印度钦奈访问服务器。

源代码:

    <!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
</head>
<body style='margin:0px' >

<table>
<tr>
<th>latency in milliseconds</th>
<th>hover to trigger message</th>
</tr>
<tr>
<td><textarea id='message' name='message' rows="20" cols="20" ></textarea></td>
<td><textarea id='hover' name='hover' rows="20" cols="20" ></textarea></td>
</tr>
</table>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
jQuery(function($){

var socket = io.connect();
var messagearea=document.getElementById("message");
var workarea=document.getElementById("hover");
workarea.onmousemove=function(){


var startTime = Date.now();
socket.emit('ping',startTime);

};

socket.on('pong', function(startTime) {
var latency = Date.now() - startTime;
messagearea.innerHTML= messagearea.innerHTML + latency + '\n';
messagearea.scrollTop = messagearea.scrollHeight;

});

});
</script>

</body>
</html>

最佳答案

我通过 ping 测试和您的应用程序得到了几乎相同的结果。由于 ping 测试将您的客户端/服务器排除在外,并使用众所周知的网络工具 - 如果您在应用程序中得到与 ping 测试类似的结果,那么您的客户端/服务器运行得很好,而不是延迟的根源。

现在,当您从印度运行到底特律的测试时,您正在跨越半个地球并跨越至少一个主要海洋进行网络连接。如果存在一些延迟并不奇怪,如果延迟发生变化也不足为奇。为了让您了解接下来会发生什么,您将一些 TCP 数据包从印度发送到底特律。他们经过许多不同的路由器和服务提供商以及电缆/光纤,最终到达底特律的服务器。因为它是 TCP,所以必须沿着相反的路线发回传送确认。然后你的服务器获取数据包并以另一种方式发送 TCP 数据包,这再次需要通过返回数据包进行确认。

我运行了您的应用程序并得到了这些结果:

enter image description here

我在加利福尼亚州圣何塞的位置使用 ping -n 20 173.200.239.98 运行了 ping 测试,并得到了以下结果:

enter image description here

如您所见,ping 测试给出了 73-87 毫秒。您的应用游戏 74-83 毫秒。这些基本上是相同的。看来您的客户端和服务器运行得很好。

我建议您在自己的位置运行自己的 ping 测试,看看您的 ping 测试与应用结果之间有多大差异。

如果您想查看数据包所采取的路线以及到达每个站点的传输时间信息,您可以运行以下命令:

tracert 173.200.239.98

它会向您显示到达目的地的过程中每个连续主要跳跃的时间(以毫秒为单位)。

关于node.js - socket.io(websockets) 的延迟问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com