~starkingdoms/starkingdoms

ref: fc59c04a44c40d563b40289bc6a2761ba2089ffd starkingdoms/crates/unified/src/client/net.rs -rw-r--r-- 1.5 KiB
fc59c04a — core Merge remote-tracking branch 'origin/core/rewrite-it-all-again-lmao' into core/rewrite-it-all-again-lmao 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use aeronet::io::{Session, SessionEndpoint};
use aeronet::io::connection::Disconnected;
use aeronet_replicon::client::AeronetRepliconClient;
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>) {
    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()
}