Skip to main content

websocket/
websocket.rs

1//! WebSocket example
2//!
3//! Run with: cargo run --example websocket --features use-websocket
4
5use electrum_client_netagnostic::{Client, ElectrumApi};
6
7fn main() {
8    // Test WSS (secure WebSocket)
9    // You can override the server with environment variables:
10    //   WSS_SERVER=wss://your-server:port cargo run --example websocket --features use-websocket
11    let wss_server =
12        std::env::var("WSS_SERVER").unwrap_or_else(|_| "wss://rostrum.riften.net:443".to_string());
13
14    println!("Testing WSS connection to {}...", wss_server);
15    match Client::new(&wss_server) {
16        Ok(client) => {
17            println!("Connected to WSS server!");
18            match client.ping() {
19                Ok(()) => println!("WSS ping successful!"),
20                Err(e) => println!("WSS ping failed: {:?}", e),
21            }
22        }
23        Err(e) => println!("WSS connection failed: {:?}", e),
24    }
25
26    // Test WS (plaintext WebSocket)
27    let ws_server = std::env::var("WS_SERVER")
28        .unwrap_or_else(|_| "ws://rostrum.cauldron.quest:50003".to_string());
29
30    println!("\nTesting WS connection to {}...", ws_server);
31    match Client::new(&ws_server) {
32        Ok(client) => {
33            println!("Connected to WS server!");
34            match client.ping() {
35                Ok(()) => println!("WS ping successful!"),
36                Err(e) => println!("WS ping failed: {:?}", e),
37            }
38        }
39        Err(e) => println!("WS connection failed: {:?}", e),
40    }
41}