Node.js 如何允许electron应用程序监听windows上的传入流量
我正在创建一个TCP服务器来监听Electron中IOT客户端的数据。 在mac中,我会弹出关于允许应用程序中的传入流量的消息,但在windows中,什么都不会发生,并且当防火墙打开时,windows不允许传入流量。 但如果我关掉火,所有的应用程序都可以正常工作。但我希望即使防火墙开启,应用程序也能正常工作 有人能帮我在我的电子应用程序中使用nodeJS代码向防火墙添加异常吗Node.js 如何允许electron应用程序监听windows上的传入流量,node.js,windows,electron,electron-builder,Node.js,Windows,Electron,Electron Builder,我正在创建一个TCP服务器来监听Electron中IOT客户端的数据。 在mac中,我会弹出关于允许应用程序中的传入流量的消息,但在windows中,什么都不会发生,并且当防火墙打开时,windows不允许传入流量。 但如果我关掉火,所有的应用程序都可以正常工作。但我希望即使防火墙开启,应用程序也能正常工作 有人能帮我在我的电子应用程序中使用nodeJS代码向防火墙添加异常吗 function startSocket() { try { dataServer = net.create
function startSocket() {
try {
dataServer = net.createServer();
dataServer.on("error", function (error) {
console.log(error);
showMsg(error.message, "red");
dataServer.close();
});
dataServer.on("connection", handleConnection);
dataServer.listen(port, function () {
const address = dataServer.address();
var privateIP = ip.address();
sendMessage({
title: "start",
frequencies: frequencies,
Ns: Ns,
count: frequencies.length,
ip: privateIP,
port: port,
singleChannel: singleChannel,
});
disableElements([startBtn]);
noLostPackets = 0;
console.log(`Listing for Data at ${privateIP}:${address.port}`);
showMsg(`Listing for Data at ${privateIP}:${address.port}`, "green");
});
function handleConnection(conn) {
let fullDataString = "";
var remoteAddress = conn.remoteAddress + ":" + conn.remotePort;
showMsg(`new client connection from ${remoteAddress}`);
conn.on("data", onConnData);
conn.on("end", onConnClose);
conn.on("error", onConnError);
function onConnData(data) {
fullDataString += data.toString();
//appending data to the file
showMsg(`Packet recived`);
conn.write("data recived");
}
function onConnClose() {
showMsg(`writing to file...`);
packet.classList.add("packet");
restartAnimation();
try {
data_obj = JSON.parse(fullDataString);
} catch (error) {
showMsg("Not Valid JSON data", "red");
console.log("Not Valid JSON data");
return;
}
let numberOfLines = data_obj.data.split(/\n/).length - 1;
writeToFile(
saveFilePath,
data_obj.data,
data_obj.frequency,
numberOfLines
);
noOfPackets += numberOfLines;
bigNumber.innerText = noOfPackets;
}
function onConnError(err) {
console.log(err);
showMsg(`Reconnecting...`, "green");
}
}
} catch (error) {
console.log(error);
showMsg(error.message, "red");
}
}
您可能遇到了一个限制,即当应用程序不在提升权限下运行时,不允许创建侦听套接字。尝试“以管理员身份运行”,当它工作时,只需创建一个。如果有帮助的话,请留言。我尝试以管理员的身份运行应用程序,但仍然存在相同的问题。防病毒防火墙正在阻止应用程序的传入流量。(抱歉,意外删除了以前的评论)。您应该能够(向下滚动到命令行/powershell部分)我担心您可能无法对阻止您的应用的外部软件做任何事情。如果这有帮助,请记下一条注释,以便有人可能从您的案例中学习。