使用socket.io时分配大小溢出

时间:2014-12-16 18:01:27

标签: javascript node.js sockets memory-management websocket

我正在使用node.js开发一个web应用程序,我正在使用socket.io。我有问题,有时socket.io似乎没有工作。当我看一下浏览器控制台时,我看到"分配大小溢出"错误消息,指向这段代码:

var msgLength = '';
for (var i = 1; ; i++) {
  if (tailArray[i] == 255) break;
  msgLength += tailArray[i]; // this is the line which causes the error
}

如果有人想看到更多代码,我会说这些是node.io.js(显然是客户端文件)节点的socket.io模块版本1.0.2的第3725-3729行。

上面的函数似乎生成了一个太长的字符串。但是,我一直在调查字符串的最大长度,我发现了this SO问题,这清楚地表明没有字符串长度限制。经过深入调查后,我发现并复制了一个导致分配大小溢出的示例。浏览器上的错误警告。这是代码:

var a = 'a';
for (var i = 0; i < 100; i++) {
    a += a;
}

这段代码显然必须崩溃,因为&#34; a&#34;的最终大小。必须达到并超过PB级限制。但是,我已经看到,在崩溃的那一刻,&#34; i&#34;是27岁,所以&#34; a&#34;是128 MB。我使用socket.io处理的数据到目前为止还没有达到这个大小,所以我想知道:是什么导致了这个&#34;分配大小溢出&#34;,我该如何解决这个问题?

谢谢!

0 个答案:

没有答案