Я разрабатываю электронное приложение для управления реле ESP8266 через TCP.
ESP8266 имеет TCP-сервер, работающий через порт 8080 в моей локальной сети.
Основной код ниже работает. ESP8266 принимает соединение и команды для включения / выключения реле также работают.
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);
});
Но теперь я хотел бы сделать это соединение "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" вне события нажатия кнопки Connect, мое приложение подключается к ESP8266.
Если я вставлю "socket.connect" в событие нажатия кнопки Connect, соединение не произойдет.
Есть ли другой способ изменить IP-адрес, если это необходимо во время выполнения?
Это скриншот приложения, которое я пытаюсь создать: