Tauri 進(jìn)程間通信

2024-02-06 16:56 更新

進(jìn)程間通信 (IPC) 可以讓多個(gè)獨(dú)立進(jìn)程安全地交流信息,更是構(gòu)建復(fù)雜應(yīng)用程序的關(guān)鍵。

Tauri 使用名為異步信息傳遞的一種進(jìn)程間通信技術(shù)。由此,進(jìn)程可以通過(guò)簡(jiǎn)單的數(shù)據(jù)表達(dá)方式來(lái)交換序列化后的請(qǐng)求及回應(yīng)信息。數(shù)據(jù)傳遞一詞對(duì)有著網(wǎng)頁(yè)開發(fā)經(jīng)驗(yàn)的用戶想必比較耳熟,因?yàn)槭腔ヂ?lián)網(wǎng)上常見的客戶端 - 服務(wù)器交流模式。

由于數(shù)據(jù)傳遞允許接收方拒絕或丟棄請(qǐng)求,故其相比共享內(nèi)存,或是直接函數(shù)訪問(wèn)而言更為安全。舉個(gè)例子,若 Tauri 核心進(jìn)程覺(jué)得某個(gè)請(qǐng)求是惡意的,那么它可以丟棄此請(qǐng)求,而不執(zhí)行所請(qǐng)求的函數(shù)。

下面,我們將詳細(xì)為您陳述 Tauri 所使用的兩種跨進(jìn)程通信方式 - 及。事件指令

事件

事件是即發(fā)即棄的單向進(jìn)程間通信信息,非常適合用于交流生命周期事件及狀態(tài)更改。與指令相反,事件既可以由前端發(fā)送,也可以由 Tauri 核心發(fā)送。

指令

Tauri 同時(shí)提供一個(gè)外部函數(shù)接口,類似基于跨進(jìn)程通信信息的抽象的1。主要 API 與瀏覽器中的 API 類似,前端可以使用此 API 來(lái)調(diào)用 Rust 函數(shù)、傳遞參數(shù)和接收數(shù)據(jù)。invokefetch

由于此機(jī)制底層使用類似 JSON-RPC 的協(xié)議來(lái)序列化請(qǐng)求和回應(yīng),所有參數(shù)及返回?cái)?shù)據(jù)均必須序列化為 JSON 格式。

由于命令仍然使用消息傳遞,因此它們不會(huì)像真正的 FFI 接口那樣具有相同的安全隱患。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)