跳到主要內容
Tauri

跨程序通訊

跨程序通訊 (IPC) 允許隔離的進程安全地通訊,並且是構建更複雜應用程式的關鍵。

在以下指南中了解有關特定 IPC 模式的更多資訊

Tauri 使用一種特定的跨程序通訊風格,稱為非同步訊息傳遞,其中進程交換請求響應,並使用一些簡單的數據表示形式進行序列化。對於任何具有 Web 開發經驗的人來說,訊息傳遞應該聽起來很熟悉,因為這種範例用於網際網路上的客戶端-伺服器通訊。

訊息傳遞是一種比共享記憶體或直接函數訪問更安全的技術,因為接收者可以自由地拒絕或丟棄請求,視情況而定。例如,如果 Tauri Core 進程確定請求是惡意的,它只會丟棄請求,而永遠不會執行相應的函數。

在下面,我們更詳細地解釋 Tauri 的兩個 IPC 原語 - 事件命令

事件

事件是單向、發送後不管的 IPC 消息,最適合用於溝通生命週期事件和狀態更改。與命令不同,事件可以由前端 Tauri Core 發出。

Diagram
在 Core 和 Webview 之間發送的事件。

命令

Tauri 還在 IPC 消息之上提供了一個類似於 外部函數介面 的抽象1。 主要 API invoke 類似於瀏覽器的 fetch API,並允許前端調用 Rust 函數、傳遞參數並接收數據。

由於此機制在底層使用類似 JSON-RPC 的協議來序列化請求和響應,因此所有參數和返回數據都必須可序列化為 JSON。

Diagram
命令調用中涉及的 IPC 消息。

腳註

  1. 由於命令仍然在底層使用訊息傳遞,因此它們不像真正的 FFI 介面那樣存在相同的安全隱患。


© 2025 Tauri 貢獻者。CC-BY / MIT