---
name: tauri-app-websocket
description: "Establish WebSocket connections from the Rust side using the Tauri v2 websocket plugin, bypassing WebView limitations. Use when implementing real-time messaging, managing WebSocket connection lifecycle, or configuring host allowlists for secure connections."
license: Complete terms in LICENSE.txt
---
## When to use this skill
**ALWAYS use this skill when the user mentions:**
- WebSocket connections in a Tauri app
- Real-time messaging or live updates
- WebSocket connect/disconnect lifecycle
**Trigger phrases include:**
- "websocket", "realtime", "live updates", "ws connection", "socket"
## How to use this skill
1. **Install the websocket plugin**:
```bash
cargo add tauri-plugin-websocket
```
2. **Register the plugin** in your Tauri builder:
```rust
tauri::Builder::default()
.plugin(tauri_plugin_websocket::init())
```
3. **Configure capabilities** with allowed hosts in `src-tauri/capabilities/default.json`:
```json
{ "permissions": ["websocket:default"] }
```
4. **Connect and send messages from the frontend**:
```typescript
import WebSocket from '@tauri-apps/plugin-websocket';
const ws = await WebSocket.connect('wss://api.example.com/ws');
ws.addListener((msg) => {
console.log('Received:', msg.data);
});
await ws.send('Hello server!');
await ws.disconnect();
```
5. **Implement reconnection logic** to handle network interruptions gracefully
6. **Restrict allowed hosts** in capabilities to prevent connections to unauthorized servers
## Outputs
- WebSocket plugin setup with connection lifecycle
- Message send/receive pattern with listeners
- Reconnection and error handling strategy
## References
- https://v2.tauri.app/plugin/websocket/
## Keywords
tauri websocket, realtime, live updates, WebSocket connection, socket