Open a WebSocket connection using a Rust client in JavaScript.
This plugin requires a Rust version of at least 1.77.2
Platform Level Notes windows
linux
macos
android
ios
Install the websocket plugin to get started.
Use your project’s package manager to add the dependency:
npm run tauri add websocket
yarn run tauri add websocket
deno task tauri add websocket
cargo tauri add websocket
Run the following command in the src-tauri
folder to add the plugin to the project’s dependencies in Cargo.toml
:
cargo add tauri-plugin-websocket
Modify lib.rs
to initialize the plugin:
#[cfg_attr(mobile, tauri :: mobile_entry_point)]
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-websocket
yarn add @tauri-apps/plugin-websocket
pnpm add @tauri-apps/plugin-websocket
deno add npm:@tauri-apps/plugin-websocket
bun add @tauri-apps/plugin-websocket
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! ' );
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 " ,
"permissions" : [ " websocket:default " ]
Allows connecting and sending data to a WebSocket server
Permission Table
Identifier
Description
websocket:allow-connect
Enables the connect command without any pre-configured scope.
websocket:deny-connect
Denies the connect command without any pre-configured scope.
websocket:allow-send
Enables the send command without any pre-configured scope.
websocket:deny-send
Denies the send command without any pre-configured scope.
© 2024 Tauri Contributors. CC-BY / MIT