我有一个Tauri应用程序,前端是sveltekit. 在后端,我有一个WebSocket,它在一个变量中收集一些数据. 现在,我需要在前端显示这些数据.我try 了emit_all事件,甚至是这样的:

[...]   
 tauri::command::emit_all(
        tauri::Window::current(),
        "request",
        Some(json!({ "request": request })),
    )
    .expect("Failed to send request to frontend");
[...]   

代码甚至都不能编译. 这种做法是错误的吗?我甚至try 了其他解决方案(我总是把听众放在前台)

推荐答案

这是我用过的最短的代码,它可以做你想要的事情:

fn function<R: tauri::Runtime>(manager: &impl Manager<R>) {
    manager.emit_all("event", ()).unwrap();
}

以下是在javascrip端使用它的方式:

import { listen } from "@tauri-apps/api/event";

await listen("event", (event) => {})

在有效载荷中,我建议您直接使用serde_json,因为这就是Tauri使用的.但是,除非您发布实际的编译问题,否则我们无法确切知道问题出在哪里.

Rust相关问答推荐

无法在线程之间安全地发送future (&Q;)&错误

创建包含缺失值的框架

如何为utoipa中的可选查询参数生成OpenAPI模式?

如何将`Join_all``Vec<;Result<;Vec<;Foo&>;,Anywhere::Error&>;`合并到`Result<;Vec<;Foo&>;,Anywhere::Error&>;`

如何在Bevy/Rapier3D中获得碰撞机的计算质量?

如何go 除铁 rust 中路径组件的第一项和最后一项?

原始数组数据类型的默认trait实现

为什么我们需要std::thread::scope,如果我们可以使用thread.join()在函数的生命周期内删除引用?

Pin<;&;mut可能将Uninit<;T>;>;合并为Pin<;&;mut T>;

AXUM一路由多个不包括URL的参数类型

使用关联类型重写时特征的实现冲突

在运行特定测试时,如何 suppress cargo test 的空输出?

如何使用reqwest进行异步请求?

使用 serde::from_value 反序列化为泛型类型

闭包返回类型的生命周期规范

push 方法是否取得所有权?

不能将 `*self` borrow 为不可变的,因为它也被borrow 为可变的 - 编译器真的需要如此严格吗?

如何将 Rust 中的树状 struct 展平为 Vec<&mut ...>?

在 Rust 中返回对枚举变体的引用是个好主意吗?

BigUint 二进制补码