WebSocketsPP v3库的客户端连接限制

时间:2013-03-16 18:35:42

标签: connection limit websocket++

在WebSocket ++ 0.3.x库中,是什么决定了有多少WebSocket客户端可以拥有活动连接的限制?是每个线程一个连接,还是一个线程可以处理多个WebSocket客户端连接?如果是后者,那么一个线程大概可以连接多少个连接?

基本上,我正在寻找WebSocket ++库可以在大约25个备用线程的应用程序中处理多少客户端连接的球场数。图书馆主页是: http://www.zaphoyd.com/websocketpp

1 个答案:

答案 0 :(得分:2)

如果您在支持非阻塞/异步I / O的平台上使用基于Boost.Asio的传输策略和最新版本的Boost(Linux上的epoll,OS X / BSD上的kqueue,Windows上的iocp),那么WebSocket ++不会对同时连接产生任何重大限制。

在这种情况下,限制几乎基于操作系统,硬件和应用程序因素。操作系统将限制每个进程使用的总文件描述符(使用root访问权限可以更改此限制)。高并发级别将要求您的应用程序适当地构造以处理它(主要使用短的,有限的时间,非阻塞处理程序)。其他因素将限制您与通用服务器受限的方式相同。千兆以太网只能处理如此多的流量,使用TLS或压缩会降低性能等。

我还没有使用0.3.x进行过广泛的性能基准测试,但在经过适当调整的应用程序中,0.2.x能够轻松地为i7核心上的数千个并发客户端提供服务。

WebSocket ++体系结构的目的是在给定足够资源的情况下扩展到任意连接计数。如果您正在开发一个将WebSocket ++扩展到超过10k连接的应用程序,我会对更多细节和解决您发现的任何瓶颈感兴趣。