ipc (主进程)
在主进程使用ipc
模块时,ipc
负责捕获从渲染进程(网页)发送的同步或者是异步消息.
发送消息
主进程也可以向渲染进程发送信息,具体可以看WebContents.send.
- 当发送消息的时候,事件名字为
channel
. - 回复一个同步消息的时候,你需要使用
event.returnValue
- 回复一个异步消息的时候,使用
event.sender.send(...)
下面是一个主进程和渲染进程的通信例子.
// 在主进程中.
var ipc = require('ipc');
ipc.on('asynchronous-message', function(event, arg) {
console.log(arg); // 打印 "ping"
event.sender.send('asynchronous-reply', 'pong');
});
ipc.on('synchronous-message', function(event, arg) {
console.log(arg); // 打印 "ping"
event.returnValue = 'pong';
});
// 在渲染进程(网页).
var ipc = require('ipc');
console.log(ipc.sendSync('synchronous-message', 'ping')); // 打印 "pong"
ipc.on('asynchronous-reply', function(arg) {
console.log(arg); // 打印 "pong"
});
ipc.send('asynchronous-message', 'ping');
监听消息
ipc
模块有下列几种方法来监听事件.
ipc.on(channel, callback)
channel
- 事件名称.callback
- 回调函数.
当事件发生的时候,会传入callback
event
和arg
参数.
IPC 事件
传入callback
的event
对象含有下列方法.
Event.returnValue
在同步消息中,设置这个值将会被返回.
Event.sender
返回一个可以发送消息的WebContents
.
Event.sender.send(channel[.arg1][,arg2][,...])
channel
- 事件名称.arg
(选用)
这个可以发送一个可带参数的异步消息回渲染进程.