【问题标题】:Make custom node-red TCP function制作自定义节点红色 TCP 功能
【发布时间】:2025-12-13 02:35:01
【问题描述】:

我正在开发 node-red v 0.10.40 并且我正在尝试创建一个函数,当它接收到 msg 时,会在远程主机上打开连接,发送有效负载,然后关闭连接。当我使用常规 IO TCP 节点时,它会立即打开连接并坐在那里,这是我不希望的行为。

我尝试使用在互联网上找到的一些代码,但我需要“net”模块。我将它包含在我硬件上的 settings.js 的全局上下文中,但我仍然无法使用它。当我尝试调用 new net.Socket() 时收到以下错误消息:“无法读取未定义的属性 'socket'”

请帮忙,谢谢

【问题讨论】:

  • 请将代码添加到您的帖子中,不要担心显示损坏的代码!
  • 我假设您的意思是 nodejs 版本 v0.10.40 而不是 Node-RED 版本,因为那会非常旧/过时。但正如@mch 所说,包括代码,以及如何将模块添加到全局上下文的详细信息
  • 我们开始:imgur.com/bDWIYCG 我在 settings.js 上的 functionGlobalContext 中添加了 net:require('net') 该函数包含以下代码: var net = context.global.net; var client = new net.Socket(); client.connect(1337, '127.0.0.1', function() { console.log('Connected'); client.write('Hello, server! Love, Client.'); // 发送消息 });客户端.destroy(); // 关闭连接 client.on('close', function() { console.log('Connection closed'); });

标签: javascript node.js iot node-red


【解决方案1】:

事实证明,当您设置 0 毫秒超时时,“TCP 请求”节点应该执行此操作。然而事实并非如此。希望我们与 node-red slack 团队的 dave 一起解决了这个问题,并且很快就会发布。干杯,谢谢戴夫!

【讨论】: