Skip to main content

Module invoke

Module invoke 

Source
Expand description

调用路由:把前端调用转换为 request 帧,并把 Python 返回的帧分发回对应的等待者。

架构位置:前端 -> Tauri 命令 -> Bridge -> Writer/FrameCodec -> Python 进程。 Bridge 不持有连接:发送通过调用方传入的 Writer,接收由 crate::runtime::Supervisor 的读循环调用 Bridge::handle。

不变量:

  • 每个调用 id 只会被完成一次(响应、错误、超时、取消或 Bridge::fail_all 中先到者生效), 之后迟到的帧被静默丢弃;
  • 调用完成时同时注销其 channel 与客户端 id 映射,因此调用返回后到达的 channel_data 不会再投递;
  • 客户端调用 id 按窗口隔离,见 CallOptions::client_id。

Structs§

Bridge
进行中调用、客户端 id 与 channel 的注册表,在多次进程重启之间复用。
CallOptions
单次调用的可选参数。

Constants§

MAX_TIMEOUT_FACTOR
前端指定的单次超时最多为默认超时的此倍数。

Traits§

EventSink
接收 Python 发往前端的事件与进程退出通知。

Type Aliases§

ChannelSink
接收某个 channel 数据的回调,通常把载荷转发给前端的 Channel。