【发布时间】:2014-08-14 07:11:54
【问题描述】:
我们计划使用 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>
【问题讨论】:
-
所以有一个来自印度的数据包 --> 底特律,一些服务器延迟,然后是一个来自底特律的返回数据包 --> 印度,它都是 TCP,所以也有确认数据包以另一种方式发送。绕了半个地球,一些明显的滞后并不让我感到惊讶。您预计延迟是多少?
-
是的,这就是我的问题..这是正常的滞后吗?还是我做错了什么? @jfriend00
-
我在加利福尼亚州圣何塞的测试页面上得到大约 75 毫秒,这似乎相对正常。我的互联网连接速度非常快,而且圣何塞与互联网骨干网的连接非常好。
-
173.200.239.98:6060 你测试过我的延迟测试应用运行的这个链接吗? @jfriend00
-
试试
ping -n 20 173.200.239.98看看往返时间是多少。这将您的客户端和服务器排除在外,并为您提供原始网络往返的基准。我在您的应用程序中得到的结果几乎相同,这让我认为您的客户端和服务器运行良好,而您看到的是网络传输时间。
标签: node.js websocket socket.io-1.0