Node.js - 如何跟踪已连接的套接字对象? (TCP)

Node.js - How to keep track of connected socket objects? (TCP)

我正在尝试使用 Node.js 和标准 'net' 模块创建点对点应用程序。该应用程序既有一个服务器侦听,也有一个功能,该功能将创建一个新连接到另一个对等点上的静态端口,该连接是通过我正在处理的对等点发现找到的。我的问题是,跟踪套接字对象的最佳方法是什么,以便我可以稍后将消息发送到特定 IP,或者甚至只是使用所有套接字发送一条消息。

我尝试将套接字对象添加到另一个保存它们的对象,但是当我这样做时,它打开了一个新连接,导致应用程序与每个节点建立两个连接,而不是一个。

tl;dr 如何在不打开新连接的情况下跟踪多个套接字?

(感谢大家的宝贵时间,你们给予的帮助对于一个正在学习的程序员来说是无价的)

来自 net 模块的套接字对象可以像 Javascript 中的任何其他对象一样简单地存储。例如,您可以将其存储在变量、数组中,作为 属性 的值,等等...

如果您试图将它存储在某处是在创建一个新的套接字,那么您只是在使用错误的代码来存储它。请分享该代码,我们可以帮助您详细了解您做错了什么。

例如,您可以这样做:

var sockets = [];
var s = net.connect(...);
sockets.push(s);

并且,您将拥有一个连接的套接字数组,然后您可以根据需要对其进行处理(例如,遍历该数组并向所有这些套接字发送消息)。