在内存中的JS对象中可以容纳多less个socket.io对象,然后才能显着降低性能?

我有一个奇怪的网站devise。 我正在使用socket.io,并且必须维护每个连接的用户的套接字对象,以便从单独的应用程序漏斗响应。

我正在存储这样的sockets:

var clients = {}; //further down, in socket.io code: io.sockets.on('connection', function(socket){ clients[socket.id] = socket; .... 

当客户端请求进来时,我包含套接字ID并将其发送给另一个应用程序。 当响应进入时,我把连接和:

 if(returned_object.socketid){ if(clients[d.socketid]){ clients[d.socketid].emit('res', returned_object); } ... 

实际上,在我注意到性能滞后之前,我可以期待多less并发连接? 我想知道它是在几十,几百还是几千。 显然,我使用delete每个套接字disconnect

我还考虑将每个套接字写入到与leveldb或其他数据库连接的磁盘上。

谢谢

在你开始看到性能“下降”之前,万计是一个很好的估计,即使如此,在你达到20k或50k的socket对象之前,可能不会引起注意。 如果考虑套接字对象的内存大小与标准Apache连接的大小(每个连接2-3MB),那么你真的没有太多的关注。