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

我正在开发一个与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 } 

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

看来上面的函数产生一个太长的string。 然而,我一直在调查一个string的最大长度,我发现这个问题,这清楚地表明没有string长度的限制。 经过深入调查,我发现并重现了一个导致浏览器出现“分配大小溢出”错误警告的例子。 代码如下:

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

这个代码显然不得不崩溃,因为“a”的最终大小必须达到并超过PB级限制。 不过,我看到在崩溃的那一刻,“我”的值是27,所以“a”的大小是128MB。 我用socket.io处理的数据到目前为止还没有达到这样的大小,所以我想知道:什么可能导致这个“分配大小溢出”,我该如何解决这个问题?

谢谢!