如何获取 net.Server 中已连接套接字的列表?

问题描述 投票:0回答:1

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) => {...})
,这让我怀疑它的用例。

node.js sockets tcpserver
1个回答
0
投票

我在我的功能请求中得到的评论让我意识到nodejs不会因为几个原因这样做,所以我必须自己存储每个套接字,例如

构建潜在的大型资源列表通常感觉像是 Node.js 中的反模式,除非应用程序代码完全同步,否则很容易出现竞争条件。

评论还提到了

net.server.getConnections((err, count) => {...})
,

的可能用法

我假设 getConnections() 来计算连接主要用作 实践中的度量,例如 Prometheus 等。

© www.soinside.com 2019 - 2024. All rights reserved.