net.server.getConnections((err, count) => {...})
只返回连接的计数,我无法获取每个连接。我原以为我可以在回调中使用以下代码for (let socket of server.connections) {...}
,但我收到错误TypeError: server.connections is not iterable
。
我搜索了 SO,发现 10 年前有人问过一个类似的问题,但没有答案,所以我又问了一遍,枚举 Node.js net.Server 连接。
如何获得每个连接?我是否必须自己将每个套接字存储在
Event: 'connection'
回调中?这似乎是目前唯一的方法,我已经向nodejs提出了功能请求
类似的问题在 Python 中也被问过好几次,例如: 我怎样才能在Python的列表中保存已连接的客户端列表?他们都说你必须自己存储它。
只是Nodejs提供了
net.server.getConnections((err, count) => {...})
,这让我怀疑它的用例。
我在我的功能请求中得到的评论让我意识到nodejs不会因为几个原因这样做,所以我必须自己存储每个套接字,例如
构建潜在的大型资源列表通常感觉像是 Node.js 中的反模式,除非应用程序代码完全同步,否则很容易出现竞争条件。
评论还提到了
net.server.getConnections((err, count) => {...})
, 的可能用法
我假设 getConnections() 来计算连接主要用作 实践中的度量,例如 Prometheus 等。