1.9 KiB
1.9 KiB
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
String - 事件名稱callback
Function
當一個事件發生 callback
會帶著 event
物件和一個訊息 arg
IPC 事件
event
物件被傳入 callback
具有以下幾個方法:
Event.returnValue
設定這個值可以回傳一個同步訊息
Event.sender
回傳 WebContents
可以送出訊息
Event.sender.send(channel[, arg1][, arg2][, ...])
channel
String - 事件名稱arg
(選用)
此傳送訊息是非同步的訊息,至渲染行程,可以是一個一系列的參數 arg
可以是任何型態。