Skip to content

Latest commit

 

History

History
62 lines (50 loc) · 1.46 KB

README.md

File metadata and controls

62 lines (50 loc) · 1.46 KB

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.