如何使用websockets / ws lib限制Websocket连接的数量?

时间:2019-11-06 15:20:34

标签: node.js websocket ws

我想对WS连接的最大数量设置一个硬限制,即最大100个。我正在编写一个node.js服务器,其中我不应允许超过100个连接。

如何限制Websocket连接的数量触摸系统 ulimit

1 个答案:

答案 0 :(得分:1)

仅需扩展我添加的评论,我就可以使用每个会话 ulimit -n命令来限制服务器打开的Websocket连接数量。

也就是说,在启动Websocket服务器之前,请在控制台中运行:

ulimit -n 12

..成功(运行ulimit -a确认)

然后我启动服务器并通过在命令前加上 strace 来跟踪其系统调用:

strace -F -f -e trace=network ./myserver --port 33345

然后我建立许多并发的客户端连接。在大约6到8建立连接之后,进一步的客户端尝试失败,我在服务器strace输出中看到了这一点:

[pid 24344] accept4(10, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EMFILE (Too many open files)
[pid 24344] accept4(10, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = 9
[pid 24344] accept4(10, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK) = -1 EAGAIN (Resource temporarily unavailable)

请注意,新的终端会话看不到此ulimit,我尚未更改任何服务器范围的设置。