use aeronet::io::connection::{DisconnectReason, Disconnected}; use aeronet::io::{Session, SessionEndpoint}; use aeronet_replicon::client::AeronetRepliconClient; use aeronet_transport::TransportConfig; use bevy::prelude::*; pub fn set_config(mut q: Query<&mut TransportConfig, Added>) { for mut q in &mut q { q.max_memory_usage = 8_388_608; // 8 MiB } } pub fn on_connecting( trigger: On, names: Query<&Name>, mut commands: Commands, ) { let entity = trigger.event_target(); let name = names.get(entity).unwrap(); info!("{name} is connecting"); commands.entity(entity).insert(AeronetRepliconClient); } pub fn on_connected(trigger: On, names: Query<&Name>) { let entity = trigger.event_target(); let name = names.get(entity).unwrap(); info!("{name} is connected"); } pub fn on_disconnected(trigger: On, names: Query<&Name>) { let session = trigger.event_target(); let name = names.get(session).unwrap(); match &trigger.reason { DisconnectReason::ByUser(reason) => { info!(?name, ?reason, "session disconnected by user"); } DisconnectReason::ByPeer(reason) => { info!(?name, ?reason, "session disconnected by peer"); } DisconnectReason::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() }