W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
進(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 接口那樣具有相同的安全隱患。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: