housleyjk / ws-rs

Lightweight, event-driven WebSockets for Rust.
MIT License
1.46k stars 221 forks source link

Does "connect" not support ipv6? #341

Open kkoang opened 1 year ago

kkoang commented 1 year ago
// service
use ws::listen;
fn main() {
    // error code
    if let Err(err) = listen("[::]:3012", |out| {
        // correct code
        // if let Err(err) = listen("0.0.0.0:3012", |out| {
        move |msg| {
            println!("server receive: '{}'.", msg);
            let new_msg = format!("you:{}!!", msg);
            println!("server return message '{}'.", new_msg);
            out.send(new_msg)
        }
    }) {
        println!("Fail create WebSocket connection due to error: {:?}", err)
    }
    println!("service over")
}
// client
use ws::{connect, CloseCode};
fn main() {
    // error code
    if let Err(err) = connect("ws://[::1]:3012", |out| {
        // correct code
        // if let Err(err) = connect("ws://127.0.0.1:3012", |out| {
        if out.send("Hello").is_err() {
            println!("Failed");
        } else {
            println!("Client send Hello")
        }
        move |msg| {
            println!("Client receive: '{}'.", msg);
            out.close(CloseCode::Normal)
        }
    }) {
        println!("Fail create WebSocket connection due to error: {:?}", err);
    }
    println!("client over");
}

Run error when url is "ws://[::1]:3012". Run correctly when url is "ws://127.0.0.1:3012".