Websocket 确定码头将打开的最大腹板闸门

Websocket 确定码头将打开的最大腹板闸门,websocket,jetty,Websocket,Jetty,我正试图找出如何获得jetty允许打开的最大数量的WebSocket。从我的笔记本电脑chrome上看,它的峰值似乎是254。我正试图确定这是铬限制还是码头限制或其他什么 package jetty; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.websocket.server.WebSocketHandler; import org.eclipse.jetty.websocket.servlet.WebSo

我正试图找出如何获得jetty允许打开的最大数量的WebSocket。从我的笔记本电脑chrome上看,它的峰值似乎是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();     

}

}

这取决于
ThreadPool
配置

默认情况下,服务器以一个
QueuedThreadPool
启动,最多200个线程

注意:线程池中的线程数和WebSocket数之间没有1:1的关系。如果您有空闲的WebSocket,那么线程将返回池供其他活动WebSocket使用

从200 max thread
ThreadPool
configuration提供40000个活动WebSocket非常容易(如果您有低活动性websocket连接。您使用Jetty的本机websocket实现,而不是javax.websocket实现。您不使用基于对象/流/流的消息处理,而是使用普通的字符串/字节缓冲消息。立即从onMessage dispatch返回,不要启动自己的线程。等等)

有关调整线程池上线程大小的更多信息,请参阅

创建
线程池
,然后将其传递到
服务器
构造函数中,如下所示

ThreadPool ThreadPool=new QueuedThreadPool(400);
服务器=新服务器(线程池);
ServerConnector http=新的ServerConnector(服务器);
http.setPort(8080);
addConnector(http);

Hi,有没有办法验证和检查这一点?就像任何jetty代码片段或其设计文档显示连接数未链接到服务器的QTP一样?想知道如何在同一连接上维护从连接器到处理程序的请求顺序。(这应该是WebSocket的保证)。一旦http请求通过http升级到websocket,它就不再依赖于处理程序的http行为。连接数在这里是一个没有意义的度量,请关注活动连接数(有流量的连接数),因为Jetty中的所有线程和nio处理都是这样工作的(仅从网络选择器或阻塞API为I/O操作分配线程)。很抱歉给您带来更多麻烦,请说明我的无知。根据我对任何http请求的理解,连接器会将请求发送给处理程序,并使用线程进行处理。我的理解正确吗?如果正确,那么在需要维护请求顺序的情况下,如何处理来自活动连接的请求跨线程?或者对于一组连接,是同一处理程序线程进程?这里的问题是服务器将保持TCP/IP连接永久打开。协议切换到WebSocket。这就像有一个正常的套接字连接。它不是一个(逻辑)连接的模拟http上的套接字连接,但却是真正的永久套接字连接。请参阅: