use aeronet::io::{Session, SessionEndpoint}; use aeronet::io::connection::Disconnected; use aeronet_replicon::client::AeronetRepliconClient; use bevy::prelude::*; pub fn on_connecting(trigger: Trigger, names: Query<&Name>, mut commands: Commands) { let entity = trigger.target(); let name = names.get(entity).unwrap(); info!("{name} is connecting"); commands.entity(entity).insert(AeronetRepliconClient); } pub fn on_connected(trigger: Trigger, names: Query<&Name>) { let entity = trigger.target(); let name = names.get(entity).unwrap(); info!("{name} is connected"); } pub fn on_disconnected(trigger: Trigger, names: Query<&Name>) { let session = trigger.target(); let name = names.get(session).unwrap(); match &*trigger { Disconnected::ByUser(reason) => { info!(?name, ?reason, "session disconnected by user"); }, Disconnected::ByPeer(reason) => { info!(?name, ?reason, "session disconnected by peer"); }, Disconnected::ByError(err) => { warn!(?name, "session disconnected due to error: {err:?}"); } } } #[cfg(target_family = "wasm")] pub fn websocket_config() -> aeronet_websocket::client::ClientConfig { aeronet_websocket::client::ClientConfig::default() } #[cfg(not(target_family = "wasm"))] pub fn websocket_config() -> aeronet_websocket::client::ClientConfig { aeronet_websocket::client::ClientConfig::builder().with_no_cert_validation() }