• ipc (主进程)
    • 发送消息
    • 监听消息
      • ipc.on(channel, callback)
    • IPC 事件
      • Event.returnValue
      • Event.sender
      • Event.sender.send(channel[.arg1][,arg2][,...])

    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 (选用)

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