考虑创建用户可以协作的实时应用程序。发现node.js + socket.io是此类问题的解决方案之一。
我从其他开发人员那里听说,我的服务器将为用户提供的套接字数量将存在瓶颈。因此,如果我有数百个用户同时进行协作,则开放套接字的数量将耗尽,用户将无法连接。这是一个有效的问题吗?
更新:有关相关说明我希望使用SockJS而不是Socket.io。这些库中有thread that explains pros and cons个。 this is a good read也是{{3}}。
答案 0 :(得分:4)
对于数百名用户,我认为这不是一个问题。
如您所知,套接字在客户端和服务器之间具有持久连接,并且双方都可以随时开始发送数据。让它们保持打开并不像处理发送/秒的消息那样处理负载。
Socket.io可以轻松处理1000个并发连接。但如果它每秒发送超过8-10k的消息,它将失败。在套接字耗尽之前,您将遇到负载障碍。在大多数情况下,处理更多并发用户会转换为更高的负载。所以不要担心插座坏了。试图超越该障碍需要更多的服务器资源。
有用的链接:
答案 1 :(得分:1)
已经有solutions using this approach like Cloud9并且效果很好。您将需要向外扩展。所以,如果你正在计划一些大事我会考虑它。
Here are some tests on sockets.io有10,000个并发连接。看起来这是一个很好的解决方案,但由于回退机制不容易。