use aeronet::io::connection::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 q.iter_mut() { q.max_memory_usage = 8388608; // 8 MiB } } 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() }