未捕获RangeError:超出最大调用堆栈大小 - socket.io

时间:2017-08-16 15:30:30

标签: javascript node.js websocket socket.io

当超过1个人有一个活动的websocket连接时,我一直收到此错误。

在io.on('connection')中我有io.on('disconnect'):

socket.on('disconnect', function(m) {
    var address = socket.client.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress;
   if(usersOnline[address])
    {
      delete usersOnline[address];
    }
    io.sockets.emit('message', {
      type: 'connections',
      total: Object.keys(usersOnline).length
    });

});

我正在调用connect()函数,当文档准备好时,它会在其中发出('disconnect'):

$(document).ready(function() {
    connect();

connect()函数中的断开处理程序:

SOCKET.on('disconnect', function(m) {
            SOCKET.emit('disconnect', {
                hash: hash
            });
        });

当删除处理程序(或on('disconnect'))时,我得到“在建立连接之前Websocket已关闭...

我该怎么做才能解决这个问题?我已经研究了一个多星期了,到目前为止,关于类似问题的其他Stackoverflow帖子都没有帮助。

1 个答案:

答案 0 :(得分:0)

通过将socket.io更新为2.0 ...

来解决此问题

捂脸