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

标签 node.js sockets tcp

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

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

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

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

最佳答案

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

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

例如,您可以这样做:

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

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

关于Node.js - 如何跟踪连接的套接字对象? (TCP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655799/

相关文章:

git lfs pull in repository 产生关于 dial tcp 的错误

javascript - 从字符串渲染 React 组件

node.js - Sails 在错误的目录中查找

windows - mongodb : listen() attempts to access socket in a forbidden way

javascript - 使用 websocket 的聊天应用程序

java - 如何等到 TCP 端口在 Java 中真正( native )关闭?

java - 从 InputStream 读取所有字节

mysql - 我的 SQL 服务器安装 : 3306 port showing warning and not enable next button

javascript - 从 BrowserWindow Electron 类扩展时出错

node.js - 无法在我的 node.js 项目中的 wamp 套接字中配置 ssl