fix(websocket): config (#541)

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
This commit is contained in:
Lorenzo Rizzotti
2023-08-08 15:32:34 +02:00
committed by GitHub
parent dacde1629d
commit ac495b9fb4
2 changed files with 15 additions and 3 deletions
+13 -2
View File
@@ -1,5 +1,13 @@
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> {
type: T;
data: D;
@@ -26,7 +34,10 @@ export default class WebSocket {
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 handler = (message: Message): void => {
listeners.forEach((l) => l(message));
@@ -35,7 +46,7 @@ export default class WebSocket {
return await invoke<number>("plugin:websocket|connect", {
url,
callbackFunction: transformCallback(handler),
options,
config,
}).then((id) => new WebSocket(id, listeners));
}
+2 -1
View File
@@ -42,13 +42,14 @@ impl Serialize for Error {
#[derive(Default)]
struct ConnectionManager(Mutex<HashMap<Id, WebSocketWriter>>);
#[derive(Default, Deserialize)]
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConnectionConfig {
pub write_buffer_size: Option<usize>,
pub max_write_buffer_size: Option<usize>,
pub max_message_size: Option<usize>,
pub max_frame_size: Option<usize>,
#[serde(default)]
pub accept_unmasked_frames: bool,
}