codecamp

Tauri 进程间通信

进程间通信 (IPC) 可以让多个独立进程安全地交流信息,更是构建复杂应用程序的关键。

Tauri 使用名为异步信息传递的一种进程间通信技术。由此,进程可以通过简单的数据表达方式来交换序列化后的请求及回应信息。数据传递一词对有着网页开发经验的用户想必比较耳熟,因为是互联网上常见的客户端 - 服务器交流模式。

由于数据传递允许接收方拒绝或丢弃请求,故其相比共享内存,或是直接函数访问而言更为安全。举个例子,若 Tauri 核心进程觉得某个请求是恶意的,那么它可以丢弃此请求,而不执行所请求的函数。

下面,我们将详细为您陈述 Tauri 所使用的两种跨进程通信方式 - 及。事件指令

事件

事件是即发即弃的单向进程间通信信息,非常适合用于交流生命周期事件及状态更改。与指令相反,事件既可以由前端发送,也可以由 Tauri 核心发送。

指令

Tauri 同时提供一个外部函数接口,类似基于跨进程通信信息的抽象的1。主要 API 与浏览器中的 API 类似,前端可以使用此 API 来调用 Rust 函数、传递参数和接收数据。invokefetch

由于此机制底层使用类似 JSON-RPC 的协议来序列化请求和回应,所有参数及返回数据均必须序列化为 JSON 格式。

由于命令仍然使用消息传递,因此它们不会像真正的 FFI 接口那样具有相同的安全隐患。


Tauri 审计
Tauri 不兼容内容
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Tauri 指南

Tauri 特性

Tauri 插件

Tauri 应用程序接口

Tauri JavaScript/TypeScript

Tauri 命令行界面

Tauri 进程

Tauri 参考

Tauri WebView 版本

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }