使用 net nodejs 模块单击按钮连接到套接字服务器
connect to socket server on button click using net nodejs module
我正在开发一个用于通过 TCP 控制 ESP8266 继电器的电子应用程序。
ESP8266 在我本地网络的端口 8080 上有一个 TCP 服务器 运行。
下面的基本代码有效。 ESP8266 接受连接和指令以打开 on/off 继电器也工作。
const electron = require('electron')
var net = require('net');
var HOST = '192.168.0.33';
var PORT = 8080;
var socket = new net.Socket();
socket.connect(PORT, HOST, function() {
console.log('CONNECTED TO: ' + HOST + ':' + PORT);
});
但现在我想在我的 Electron 应用程序中按一下按钮来建立此连接 "socket.connect",这样我就可以在需要时使用输入字段更改 IP 地址。否则 IP 地址是硬编码的。
以下代码不起作用:
const electron = require('electron')
var net = require('net');
const turnOn = new Buffer([0xA0, 0x01, 0x00, 0xA1]);
const turnOff = new Buffer([0xA0, 0x01, 0x01, 0xA2]);
var socket = new net.Socket();
const connectBtn = document.getElementById('connectBtn');
const onBtn = document.getElementById('onBtn');
const offBtn = document.getElementById('offBtn');
connectBtn.addEventListener('click', function(event) {
console.log("clicked connect");
var ipAddress = document.getElementById('ipAddress').value;
var port = document.getElementById('port').value;
socket.connect(port, ipAddress, function() {
console.log('CONNECTED TO: ' + ipAddress + ':' + port);
});
})
也就是说。如果我将 "socket.connect" 放在连接按钮单击事件之外,我的应用程序将连接到 ESP8266。
如果我将 "socket.connect" 放入“连接”按钮单击事件中,则不会发生连接。
是否有其他方法可以在运行时根据需要更改 IP 地址?
这是我正在尝试构建的应用程序的屏幕截图:
当Socket host是ip而不是domain时,我也有同样的问题。也许这是Electron的错误。升级到electron3.0,修复Socket.connect。
我正在开发一个用于通过 TCP 控制 ESP8266 继电器的电子应用程序。 ESP8266 在我本地网络的端口 8080 上有一个 TCP 服务器 运行。 下面的基本代码有效。 ESP8266 接受连接和指令以打开 on/off 继电器也工作。
const electron = require('electron')
var net = require('net');
var HOST = '192.168.0.33';
var PORT = 8080;
var socket = new net.Socket();
socket.connect(PORT, HOST, function() {
console.log('CONNECTED TO: ' + HOST + ':' + PORT);
});
但现在我想在我的 Electron 应用程序中按一下按钮来建立此连接 "socket.connect",这样我就可以在需要时使用输入字段更改 IP 地址。否则 IP 地址是硬编码的。
以下代码不起作用:
const electron = require('electron')
var net = require('net');
const turnOn = new Buffer([0xA0, 0x01, 0x00, 0xA1]);
const turnOff = new Buffer([0xA0, 0x01, 0x01, 0xA2]);
var socket = new net.Socket();
const connectBtn = document.getElementById('connectBtn');
const onBtn = document.getElementById('onBtn');
const offBtn = document.getElementById('offBtn');
connectBtn.addEventListener('click', function(event) {
console.log("clicked connect");
var ipAddress = document.getElementById('ipAddress').value;
var port = document.getElementById('port').value;
socket.connect(port, ipAddress, function() {
console.log('CONNECTED TO: ' + ipAddress + ':' + port);
});
})
也就是说。如果我将 "socket.connect" 放在连接按钮单击事件之外,我的应用程序将连接到 ESP8266。 如果我将 "socket.connect" 放入“连接”按钮单击事件中,则不会发生连接。
是否有其他方法可以在运行时根据需要更改 IP 地址?
这是我正在尝试构建的应用程序的屏幕截图:
当Socket host是ip而不是domain时,我也有同样的问题。也许这是Electron的错误。升级到electron3.0,修复Socket.connect。