diff --git a/web/src/state.rs b/web/src/state.rs index 12a55a6..2a902ad 100644 --- a/web/src/state.rs +++ b/web/src/state.rs @@ -62,7 +62,7 @@ pub fn init(url: Url, orders: &mut impl Orders) -> Model { }, catchup: None, last_url: Url::current(), - websocket: websocket::init(&mut orders.proxy(Msg::WebSocket)), + websocket: websocket::init("/api/ws", &mut orders.proxy(Msg::WebSocket)), } } diff --git a/web/src/websocket.rs b/web/src/websocket.rs index fdb855c..2a731e4 100644 --- a/web/src/websocket.rs +++ b/web/src/websocket.rs @@ -78,13 +78,14 @@ pub struct ClientMessage { //const WS_URL: &str = "wss://9000.z.xinu.tv/api/ws"; //const WS_URL: &str = "wss://9345.z.xinu.tv/api/graphql/ws"; -const WS_URL: &str = "wss://6758.z.xinu.tv/api/ws"; +//const WS_URL: &str = "wss://6758.z.xinu.tv/api/ws"; // ------ ------ // Model // ------ ------ pub struct Model { + ws_url: String, web_socket: EventClient, web_socket_reconnector: Option, pub updates: VecDeque, @@ -94,9 +95,10 @@ pub struct Model { // Init // ------ ------ -pub fn init(orders: &mut impl Orders) -> Model { +pub fn init(ws_url: &str, orders: &mut impl Orders) -> Model { Model { - web_socket: create_websocket(orders).unwrap(), + ws_url: ws_url.to_string(), + web_socket: create_websocket(ws_url, orders).unwrap(), web_socket_reconnector: None, updates: VecDeque::new(), } @@ -155,7 +157,7 @@ Reason: {2} } Msg::ReconnectWebSocket(retries) => { info!("Reconnect attempt: {}", retries); - model.web_socket = create_websocket(orders).unwrap(); + model.web_socket = create_websocket(&model.ws_url, orders).unwrap(); } Msg::SendMessage(msg) => { let txt = serde_json::to_string(&msg).unwrap(); @@ -164,10 +166,10 @@ Reason: {2} } } -fn create_websocket(orders: &impl Orders) -> Result { +fn create_websocket(url: &str, orders: &impl Orders) -> Result { let msg_sender = orders.msg_sender(); - let mut client = EventClient::new(WS_URL)?; + let mut client = EventClient::new(url)?; client.set_on_error(Some(Box::new(|error| { gloo_console::error!("WS: ", error);