【发布时间】:2012-09-13 10:32:25
【问题描述】:
在我的服务器端,我使用可写流来记录连接到服务器的所有客户端的变化数据。这是我写的:
function updateLoop () {
var data = {'timeStep': timeStep, 'playerInfo': playerInfo};
var text = JSON.stringify(data);
writeStram.write(text + '\n');
timeStep += 1;
}
...
updateTimer = setInterval(updateLoop, 50);
所以函数 updateLoop() 每 50ms 被调用一次。
'playerInfo' 较小(小于 1KB)时有效,例如服务器端运行 20s 后,输出文件中有 20*1000/50 = 400 行数据
但是当'playerInfo'变大,比如6KB或更多,在服务器端运行20s后,输出文件中只有220行数据。 playerInfo 越大,输出文件中成功记录的数据行数越少。我想知道write()方法的调用率是否有限制
非常感谢你们的帮助!
【问题讨论】:
-
您可以考虑添加一个回调,而不是 setInterval / setTimeout,以便您可以尽快编写下一行。
writeStream.write(text + '\n', updateLoop);