ipc (主进程)

在主进程使用ipc模块时,ipc负责捕获从渲染进程(网页)发送的同步或者是异步消息.

发送消息

主进程也可以向渲染进程发送信息,具体可以看WebContents.send.

  • 当发送消息的时候,事件名字为channel.
  • 回复一个同步消息的时候,你需要使用event.returnValue
  • 回复一个异步消息的时候,使用event.sender.send(...)

下面是一个主进程和渲染进程的通信例子.

  1. // 在主进程中.
  2. var ipc = require('ipc');
  3. ipc.on('asynchronous-message', function(event, arg) {
  4. console.log(arg); // 打印 "ping"
  5. event.sender.send('asynchronous-reply', 'pong');
  6. });
  7. ipc.on('synchronous-message', function(event, arg) {
  8. console.log(arg); // 打印 "ping"
  9. event.returnValue = 'pong';
  10. });
  1. // 在渲染进程(网页).
  2. var ipc = require('ipc');
  3. console.log(ipc.sendSync('synchronous-message', 'ping')); // 打印 "pong"
  4. ipc.on('asynchronous-reply', function(arg) {
  5. console.log(arg); // 打印 "pong"
  6. });
  7. ipc.send('asynchronous-message', 'ping');

监听消息

ipc模块有下列几种方法来监听事件.

ipc.on(channel, callback)

  • channel - 事件名称.
  • callback - 回调函数.

当事件发生的时候,会传入callback eventarg参数.

IPC 事件

传入callbackevent对象含有下列方法.

Event.returnValue

在同步消息中,设置这个值将会被返回.

Event.sender

返回一个可以发送消息的WebContents.

Event.sender.send(channel[.arg1][,arg2][,...])

  • channel - 事件名称.
  • arg (选用)

这个可以发送一个可带参数的异步消息回渲染进程.