tdn-bevy

Crates.iotdn-bevy
lib.rstdn-bevy
version0.1.2
sourcesrc
created_at2024-02-04 08:50:29.262915
updated_at2024-02-28 04:05:47.700389
descriptionTDN plugin for Bevy game engine.
homepage
repositoryhttps://github.com/cympletech/tdn-bevy
max_upload_size
id1126216
size29,187
Neo Sun (sunhuachuang)

documentation

README

tdn-bevy

TDN plugin for Bevy game engine.

Feature

  • Support websocket client
  • Support websocket in browser (wasm)
  • Support http client in browser (wasm)
  • Support P2P network
  • Latest Bevy (0.13+)

Usage

tdn-bevy = "0.1.2"

Websocket client

use tdn_bevy::{RecvError, ws::{WsClient, WsClientPlugin, WsConnection}};

fn main() {
    App::new()
        .add_plugins(WsClientPlugin)
        .add_systems(Startup, connect_ws)
        .add_systems(Update, receive_message)
        .run();
}

fn connect_ws(mut commands: Commands, ws_client: Res<WsClient>) {
    ws_client.connect(&mut commands, "127.0.0.1:8000", None);
}

fn receive_message(mut commands: Commands, connections: Query<(Entity, &WsConnection)>) {
    for (entity, conn) in connections.iter() {
        loop {
            match conn.recv() {
                Ok(message) => {
                    println!("message: {}", message);
                    conn.send(message);
                }
                Err(RecvError::Empty) => break,
                Err(RecvError::Closed) => {
                    commands.entity(entity).despawn();
                    break;
                }
            }
        }
    }
}

P2P network

DOING

License

This project is licensed under either of

at your option.

Commit count: 0

cargo fmt