Open
Description
I can't manage to establish wss connections using message-io version 0.14.2 on macOS Big Sur. Example:
use message_io::network::{NetEvent, RemoteAddr, Transport};
use message_io::node::{self, NodeEvent};
fn main() {
connect("ws://echo.websocket.org".to_string());
connect("wss://echo.websocket.org".to_string());
}
fn connect(url: String) {
let (handler, listener) = node::split::<()>();
handler
.network()
.connect(Transport::Ws, RemoteAddr::Str(url.clone()))
.unwrap();
listener.for_each(move |event| match event {
NodeEvent::Network(NetEvent::Connected(e, success)) => {
println!("{} success={} {:?}", url, success, e);
handler.stop();
}
_ => panic!(),
});
}
Output:
ws://echo.websocket.org success=true Endpoint { resource_id: [3.R.0], addr: 174.129.224.73:80 }
wss://echo.websocket.org success=false Endpoint { resource_id: [3.R.0], addr: 174.129.224.73:443 }
However, I can connect with wss using websocat from the same machine:
$ echo foo | websocat wss://echo.websocket.org
foo
It looks like it's hitting this code path in the ws adapter:
WS client handshake error: WebSocket protocol error: Handshake not finished
Would appreciate guidance if I'm doing something incorrectly. Thanks!