Firefox下的Websockets延迟

时间:2015-06-16 17:36:35

标签: javascript firefox websocket

我创建了一个简单的WebSockets服务器,每20 ms发送一个小数据包,仅用于测试目的。然后我在纯WebSocket api中编写了一个简单的浏览器客户端,它连接到服务器并在每次收到数据包时打印Date.now()

var ws = new WebSocket('ws://localhost:8080');
ws.onmessage = function(){ console.log(Date.now()); };

当我在谷歌浏览器中启动客户端时,数据包之间的延迟是一致的,始终在19到21毫秒之间。当我在Firefox下启动它时......呃,延迟时间在3到114毫秒之间。 Firefox有什么问题以及解决方法是什么?默认情况下是否启用了某种缓冲?

在Linux下的localhost上进行了测试,Firefox版本为38.0.5,数据包大小为4个字节,没有运行其他代码,因此垃圾收集器不是问题。我也同时推出了两种浏览器,结果是一样的。

1 个答案:

答案 0 :(得分:2)

经过大量测试后,结果非常有趣 - 在Firefox下实现console.log是万恶之源。经常调用它会导致浏览器挂起,导致所有计时器和事件不同步。在Firefox下调试定时事件时,最好将日志存储在数组中并稍后打印。