gpt4 book ai didi

javascript - Websocket 只允许 200 个连接

转载 作者:行者123 更新时间:2023-11-30 12:39:42 26 4
gpt4 key购买 nike

我刚刚在我的服务器上实现了一个简单的 Websocket 系统。我正在尝试测试最大连接数,我编写了以下代码:

Javascript:

for(var i=0; i<300; i++){
websocket();
}

function websocket() {
var wsUri = "ws://" + document.location.host + document.location.pathname + "websocket";
var ws = new WebSocket(wsUri);
ws.onopen = function () { ws.send("User connected"); };
ws.onmessage = function (e) { writeToPage(e.data); };
ws.onclose = function () { writeToPage("User disconnected"); };
}

每次我运行它时,前 200 个用户会被连接,之后,所有请求都会调用它们的 onclose()。在 Web 控制台中,我收到以下错误:

Mozilla: 加载页面时与 ws://localhost:8080/MyApp/websocket 的连接中断

Chrome:WebSocket 握手期间出错:“连接” header 值不是“升级”:升级关闭

我的 Web 应用程序部署在 Tomcat 7.0.52 上。我读到默认情况下它只允许 200 个线程,所以我在 conf/server.xml 中添加了 maxThreads="1000"ConnectorExecutor 但结果是一样的。

web.xml 我添加了:

<context-param>
<param-name>org.apache.tomcat.websocket.executorMaxSize</param-name>
<param-value>1000</param-value>
</context-param>

我尝试使用 ws://echo.websocket.org 打开 300 个 websocket,但同样只有 200 个有效。

这是我的服务器允许的最大连接数吗?这是我作为客户端可以创建的最大 websocket 数量吗?这是测试重负载的好方法吗?如何增加数量?

最佳答案

经过大量研究,我发现 maxThreads="1000" 实际上解决了问题,但是 Mozilla 只允许 200 个套接字。所以我不得不从多台客户端机器上再次测试。

Default maximum number of websocket connections allowed in FireFox is 200. Source: https://developer.mozilla.org/en/docs/WebSockets#Gecko_7.0

关于javascript - Websocket 只允许 200 个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com