use aeronet::io::{Session, SessionEndpoint};
use aeronet::io::connection::Disconnected;
use aeronet_replicon::client::AeronetRepliconClient;
use aeronet_transport::TransportConfig;
use bevy::prelude::*;
pub fn on_connecting(trigger: Trigger<OnAdd, SessionEndpoint>, 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<OnAdd, Session>, names: Query<&Name>, mut commands: Commands) {
let entity = trigger.target();
let name = names.get(entity).unwrap();
info!("{name} is connected");
}
pub fn on_disconnected(trigger: Trigger<Disconnected>, 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()
}