跳转到内容

进程间通信

进程间通信(IPC)允许相互隔离的进程安全通信,是构建更复杂应用程序的关键。

在以下指南中了解更多关于特定 IPC 模式的信息

Tauri 使用一种称为异步消息传递的特定进程间通信样式,其中进程使用一些简单数据表示来交换请求和响应。对于拥有网络开发经验的人来说,消息传递听起来可能很熟悉,因为这种范式用于互联网上的客户端-服务器通信。

与共享内存或直接函数访问相比,消息传递是一种更安全的技巧,因为接收者可以自由地拒绝或丢弃请求。例如,如果 Tauri 核心进程确定请求为恶意,它将简单地丢弃请求而不会执行相应的函数。

以下我们将更详细地解释 Tauri 的两个 IPC 基本组件 - 事件和命令。

事件

事件是自燃的、单向的 IPC 消息,最适合用于通信生命周期事件和状态变化。与命令不同,事件既可以由前端发出,也可以由 Tauri 核心发出。

Diagram
核心与 Webview 之间的消息。

命令

Tauri 还在 IPC 消息之上提供了一种类似于外部函数接口(FFI)的抽象。核心 API invoke 类似于浏览器的 fetch API,允许前端调用 Rust 函数,传递参数并接收数据。

因为这个机制底层使用类似于 JSON-RPC 的协议来序列化和处理请求和响应,所有参数和返回数据都必须可序列化为 JSON。

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

脚注

  1. 因为命令仍然在底层使用消息传递,所以它们不会像真正的 FFI 接口那样存在相同的网络安全风险。


© 2025 Tauri 贡献者。CC-BY / MIT