【发布时间】:2016-09-19 16:50:31
【问题描述】:
我有必须处理大量命名空间的 socket.io 应用程序。我想知道 socket.io 实例可以处理的命名空间数量的限制是多少,如果我创建 10k 个命名空间有什么问题吗?如何扩展以跨多个 socket.io 实例进行分片(例如,每个实例处理 1k 命名空间)。实际上,我可以扩展以支持多个用户,但我的所有实例都必须处理所有命名空间。
更新1:
我要解决的问题如下,我有一个多人纸牌游戏(如扑克),每个房间都有 4 个玩家玩游戏,由 socketio 命名空间建模。由于我期望有成千上万的并发玩家,我的 socketio 实例应该处理这么多的命名空间。 我已经实现了Socket.io website 中解释的可扩展性解决方案。当我向外扩展时,这个节点 sn-p 我在新实例中运行,因此它可以处理之前创建的所有命名空间。
rooms.forEach(function(room){
var socketRoom = io.of('/room/' + room.id)
.on('connection', function(mySocket){
return handleTableSocket(mySocket, socketRoom, room);
});
});
那么使用 socketio 命名空间对每个游戏室进行建模是个好主意吗?如果命名空间的数量增加了怎么办?
干杯
【问题讨论】:
标签: node.js socket.io scalability