Websocket
Open a WebSocket connection using a Rust client in JavaScript.
Supported Platforms
This plugin requires a Rust version of at least 1.77.2
| Platform | Level | Notes |
|---|---|---|
| windows | ||
| linux | ||
| macos | ||
| android | ||
| ios |
Setup
Install the websocket plugin to get started.
Use your project’s package manager to add the dependency:
npm run tauri add websocketyarn run tauri add websocketpnpm tauri add websocketdeno task tauri add websocketbun tauri add websocketcargo tauri add websocket-
Run the following command in the
src-taurifolder to add the plugin to the project’s dependencies inCargo.toml:cargo add tauri-plugin-websocket -
Modify
lib.rsto initialize the plugin:src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().plugin(tauri_plugin_websocket::init()).run(tauri::generate_context!()).expect("error while running tauri application");} -
Install the JavaScript Guest bindings using your preferred JavaScript package manager:
npm install @tauri-apps/plugin-websocketyarn add @tauri-apps/plugin-websocketpnpm add @tauri-apps/plugin-websocketdeno add npm:@tauri-apps/plugin-websocketbun add @tauri-apps/plugin-websocket
Usage
The websocket plugin is available in JavaScript.
import WebSocket from '@tauri-apps/plugin-websocket';// when using `"withGlobalTauri": true`, you may use// const WebSocket = window.__TAURI__.websocket;
const ws = await WebSocket.connect('ws://127.0.0.1:8080');
ws.addListener((msg) => { console.log('Received Message:', msg);});
await ws.send('Hello World!');
await ws.disconnect();Permissions
By default all potentially dangerous plugin commands and scopes are blocked and cannot be accessed. You must modify the permissions in your capabilities configuration to enable these.
See the Capabilities Overview for more information and the step by step guide to use plugin permissions.
{ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "main-capability", "description": "Capability for the main window", "windows": ["main"], "permissions": ["websocket:default"]}Default Permission
Allows connecting and sending data to a WebSocket server
This default permission set includes the following:
allow-connectallow-send
Permission Table
| Identifier | Description |
|---|---|
|
|
Enables the connect command without any pre-configured scope. |
|
|
Denies the connect command without any pre-configured scope. |
|
|
Enables the send command without any pre-configured scope. |
|
|
Denies the send command without any pre-configured scope. |
© 2025 Tauri Contributors. CC-BY / MIT