「electron学习笔记」进程间的命名管道通信

「electron学习笔记」进程间的命名管道通信一、什么是管道?管道通信即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信。二、为什么要使用管道通信ele

大家好,欢迎来到IT知识分享网。

一、什么是管道?

管道通信即发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信。

「electron学习笔记」进程间的命名管道通信

二、为什么要使用管道通信

electorn 已经有 ipc 通信,这是一种管道通信,那为什么还要做命名管道通信呢?

原因很简单,因为 electron+node 这种方式满足不了目前的业务需求,一些底层的操作无法完成,需要用到 c++ 来实现,而这就涉及 c++ 进程与 electorn 进程之间的通信,单单只依靠 ipc 通信是实现不了的。

三、 例子

这是一个全局监听鼠标键盘的例子,c++实现监听鼠标键盘,通过命名管道通信回调响应。

本例中使用到的c++执行文件:

test-mouse.exe

下载地址:

https://pan.baidu.com/s/1NT5Q8ZvHfLyJ_hB2bCqiww?pwd=s4xz

「electron学习笔记」进程间的命名管道通信

electron:

app.whenReady().then(() => { createWindow(); exe.data = spawn("./test-mouse.exe",{ detached: true, stdio:'pipe' }); setTimeout(()=>{ const PIPE_PATH = "\\\\.\\Pipe\\RJ_pipe"; exe.client = net.connect(PIPE_PATH, ()=> { console.log('Client: on connection'); }) exe.client.on('data', (data)=> { console.log(data.toString()); }); exe.client.on('end', ()=> { console.log('Client: on end'); exe.client=null; }) },100) });

效果:按键盘会返回2

「electron学习笔记」进程间的命名管道通信

四、总结

这种命名管道通信的实现还是很简单的,使用 spawn 启动 exe 后,连接管道就能实现不同进程间的通信。

对于不会 c++ addons 的小伙伴来说,是一种很好的实现方式,当然也会有缺点,就是需要打包成一个可执行程序。

「electron学习笔记」进程间的命名管道通信

下期给大家分享更多 electron 实战中的点滴,如果大家对此感兴趣,欢迎各位关注、留言,大家的支持就是我的动力!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/56701.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信