# ipc (主进程) 在主进程使用`ipc`模块时,`ipc`负责捕获从渲染进程(网页)发送的同步或者是异步消息. ## 发送消息 主进程也可以向渲染进程发送信息,具体可以看[WebContents.send](web-contents.md#webcontentssendchannel-args). - 当发送消息的时候,事件名字为`channel`. - 回复一个同步消息的时候,你需要使用`event.returnValue` - 回复一个异步消息的时候,使用`event.sender.send(...)` 下面是一个主进程和渲染进程的通信例子. ```javascript // 在主进程中. 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'; }); ``` ```javascript // 在渲染进程(网页). 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` (选用) 这个可以发送一个可带参数的异步消息回渲染进程.