【问题标题】:Node JS how to limit maximum number of socketsNode JS如何限制最大套接字数
【发布时间】:2019-03-14 07:42:42
【问题描述】:

是否可以设置我的服务器可以处理的最大套接字数?类似于:maxSocket = 2 并且从 3 次尝试连接的套接字自动拒绝该连接?

谢谢

【问题讨论】:

  • 我忘了提到我的服务器应用程序中已经有一个计数器,每当客户端成功连接时,检查该计数器,如果需要手动调用 socket.disconnect()。我想知道是否有更有效的解决方案。
  • 认为这就是您所指的吗? stackoverflow.com/questions/19088253/…

标签: javascript node.js socket.io connection


【解决方案1】:

在 Node.js 中,您可以设置每个源的最大连接数。 如果设置了 maxSockets,则低级 HTTP 客户端将请求排队并 当它们可用时将它们分配给套接字。

Ref URL from AWS JS SDK

根据Node.js Doc

默认设置为无穷大。确定有多少并发套接字 代理可以按来源开放。来源是“主机:端口”或 'host:port:localAddress' 组合。

按照惯例,他们推荐 25~50,我猜。

【讨论】:

    【解决方案2】:

    默认的 maxSockets 值为Infinity,它决定了每台主机的套接字数量限制。见官方文档:https://nodejs.org/api/http.html#http_agent_maxsockets

    您可以使用以下代码 sn -p 手动设置 maxSockets 限制

    require('http').globalAgent.maxSockets = 10
    

    globalAgent:代理的全局实例,用作所有 HTTP 客户端请求的默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 2016-05-17
      • 2014-02-16
      • 2014-07-25
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多