确定最大的websockets码头将打开

时间:2015-03-27 18:40:49

标签: websocket jetty

我试图弄清楚如何获得jetty允许打开的最大数量的websockets。它似乎从我的笔记本电脑镀铬高峰254。我正在尝试确定它是否有铬限制或码头限制或其他。

package jetty;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.websocket.server.WebSocketHandler;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;

public class WebSocketTest {

public static void main(String[] args) throws Exception {
    Server server = new Server(8383);
    WebSocketHandler wsHandler = new WebSocketHandler() {
        @Override
        public void configure(WebSocketServletFactory factory) {
          factory.getPolicy().setIdleTimeout(-1);
          factory.register(MyWebSocketHandler.class);
        }
    };

    server.setHandler(wsHandler);
    server.start();
    server.join();     

}

}

1 个答案:

答案 0 :(得分:1)

这取决于您的ThreadPool配置。

默认情况下,服务器以QueuedThreadPool开头,最多包含200个线程。

注意:线程池中的线程数与websockets数之间没有1对1的关系。如果您有空闲的websockets,则该线程将返回池以供其他活动的websockets使用。

从200个最大线程ThreadPool配置中提供40,000个活动的websockets非常容易。

ThreadPool已创建,然后传入Server构造函数,就像这样......

    ThreadPool threadPool = new QueuedThreadPool(400);
    Server server = new Server(threadPool);
    ServerConnector http = new ServerConnector(server);
    http.setPort(8080);
    server.addConnector(http);
相关问题