1.基本上在server.xml的Connector(连接器)配置里配maxThreads是多少,就只能创建多少个websocket连接。不管协议是用BIO还是NIO。超过maxThreads的值,浏览器创建ws对象时可能不报错,但是尝试发送消息会失败,tomcat后台也不会有动静。
2.配置了Executor(线程池方式),则没有maxThreads的限制。
- 瓶颈首先在浏览器支持的最大ws连接数,chrome支持大约254,firefox大约200。
- 其次是<Connector>的maxConnections属性,也直接决定能接入的ws数量,默认是10000或者8192,已经很大了。
如果创建的ws连接太多,服务会明显变卡,这个应该和线程池的配置和启动时参数设置有关系,我现在还没有调试经验。