mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-09-30 21:59:36 +02:00
fix(websocket): config (#541)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
This commit is contained in:
1 parent
dacde1629d
commit
ac495b9fb4
2 files changed
+15
-3
No files matched your search
@@ -1,5 +1,13 @@
|
|||||||
import { invoke, transformCallback } from "@tauri-apps/api/tauri";
|
import { invoke, transformCallback } from "@tauri-apps/api/tauri";
|
||||||
|
|
||||||
|
export interface ConnectionConfig {
|
||||||
|
writeBufferSize?: number;
|
||||||
|
maxWriteBufferSize?: number;
|
||||||
|
maxMessageSize?: number;
|
||||||
|
maxFrameSize?: number;
|
||||||
|
acceptUnmaskedFrames?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
export interface MessageKind<T, D> {
|
export interface MessageKind<T, D> {
|
||||||
type: T;
|
type: T;
|
||||||
data: D;
|
data: D;
|
||||||
@@ -26,7 +34,10 @@ export default class WebSocket {
|
|||||||
this.listeners = listeners;
|
this.listeners = listeners;
|
||||||
}
|
}
|
||||||
|
|
||||||
static async connect(url: string, options?: unknown): Promise<WebSocket> {
|
static async connect(
|
||||||
|
url: string,
|
||||||
|
config?: ConnectionConfig,
|
||||||
|
): Promise<WebSocket> {
|
||||||
const listeners: Array<(arg: Message) => void> = [];
|
const listeners: Array<(arg: Message) => void> = [];
|
||||||
const handler = (message: Message): void => {
|
const handler = (message: Message): void => {
|
||||||
listeners.forEach((l) => l(message));
|
listeners.forEach((l) => l(message));
|
||||||
@@ -35,7 +46,7 @@ export default class WebSocket {
|
|||||||
return await invoke<number>("plugin:websocket|connect", {
|
return await invoke<number>("plugin:websocket|connect", {
|
||||||
url,
|
url,
|
||||||
callbackFunction: transformCallback(handler),
|
callbackFunction: transformCallback(handler),
|
||||||
options,
|
config,
|
||||||
}).then((id) => new WebSocket(id, listeners));
|
}).then((id) => new WebSocket(id, listeners));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,13 +42,14 @@ impl Serialize for Error {
|
|||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
struct ConnectionManager(Mutex<HashMap<Id, WebSocketWriter>>);
|
struct ConnectionManager(Mutex<HashMap<Id, WebSocketWriter>>);
|
||||||
|
|
||||||
#[derive(Default, Deserialize)]
|
#[derive(Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct ConnectionConfig {
|
pub struct ConnectionConfig {
|
||||||
pub write_buffer_size: Option<usize>,
|
pub write_buffer_size: Option<usize>,
|
||||||
pub max_write_buffer_size: Option<usize>,
|
pub max_write_buffer_size: Option<usize>,
|
||||||
pub max_message_size: Option<usize>,
|
pub max_message_size: Option<usize>,
|
||||||
pub max_frame_size: Option<usize>,
|
pub max_frame_size: Option<usize>,
|
||||||
|
#[serde(default)]
|
||||||
pub accept_unmasked_frames: bool,
|
pub accept_unmasked_frames: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user