gpt4 book ai didi

javascript - nodeJS - 通过 CLI 与后台运行的 Electron 应用程序通信

转载 作者:行者123 更新时间:2023-12-04 11:50:11 25 4
gpt4 key购买 nike

作为我要实现的目标的示例,请考虑从终端启动 VS Code。 code <file-name>如果不只是运行,命令会打开一个 vs 代码实例,否则会告诉它打开一个文件。此外,一旦打开,用户可以再次将终端 session 用于其他任务(就像进程被拒绝一样)。
我的脚本需要以相同的方式与我的 Electron 应用程序交互,唯一的区别是我的应用程序将在托盘中,而在扩展坞中不可见。
.
解决方案只需要在linux上工作

最佳答案

使用 unix 套接字服务器进行进程间通信。
在 Electron

const handleIpc = (conn) => {
conn.setEncoding('utf8');
conn.on('data',(line) => {
let args = line.split(' ');
switch(args[0]) {
case 'hey':
conn.write('whatsup\n');
break;
default: conn.write('new phone who this?\n');
}
conn.end();
})
}
const server = net.createServer(handleIpc);
server.listen('/tmp/my-app.sock');
那么你的 CLI 是:
#!/usr/bin/node
const net = require('net');
let args = process.argv;
args.shift(); // Drop /usr/bin/node
args.shift(); // Drop script path

let line = args.join(' ');
net.connect('/tmp/my-app.sock',(conn)=>{
conn.setEncoding('utf8');
conn.on('data',(response)=>{
console.log(response);
process.exit(0);
});
conn.write(line+'\n');
}).on('error',(err)=>{
console.error(err);
process.exit(1);
});

关于javascript - nodeJS - 通过 CLI 与后台运行的 Electron 应用程序通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67850893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com