我想用socket.io(node.js框架)广播1Kb消息,每隔3秒向大量用户广播。缩放它的最佳方法是什么(1个用户= 1'监听器'使用socket.on('periodicMessage',回调))?
没有其他CPU使用情况(一个外部数据库的读取,每隔3秒由另一个外部模块填充),所以我想知道一个简单的heroku服务器是否可以向10 000,110 000广播消息,100万或更多用户。
答案 0 :(得分:1)
我们在单个node.js进程上轻松扩展到数万个“侦听器”。我不确定你实际可以扩展到多少,因为每个套接字都是一个文件描述符,普通的vanilla内核可以为每个进程提供65K fd,而不是更多。
CPU不会有问题。如果有的话,上传带宽将是(1KB * 50K用户/ 3秒= 50M / 3秒= 16MB / s上游。我从未测量Heroku,所以不知道他们是否支持这个。我想他们这样做,但也许他们限制你,因为他们毕竟为亚马逊付钱了。