跳转到内容
Tauri

进程间通信

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

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

Tauri 使用一种称为异步消息传递的特定进程间通信风格,其中进程使用某种简单的数据表示形式序列化请求响应进行交换。消息传递对于有 Web 开发经验的人来说应该很熟悉,因为这种范式用于互联网上的客户端-服务器通信。

消息传递是一种比共享内存或直接函数访问更安全的技术,因为接收方可以自由地根据需要拒绝或丢弃请求。例如,如果 Tauri 核心进程确定请求是恶意的,它只会丢弃请求,并且永远不会执行相应的函数。

接下来,我们将更详细地解释 Tauri 的两种 IPC 原语 - 事件命令

事件

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

Diagram
核心和 Webview 之间发送的事件。

命令

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

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

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

脚注

  1. 因为命令在底层仍然使用消息传递,它们不会像真实的外部函数接口那样共享相同的安全隐患。


© 2024 Tauri中文网

备案号:赣ICP备2020014263号-10