use message_io::event_queue::{EventQueue};
use message_io::network_manager::{NetworkManager, NetEvent, TransportProtocol};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
enum Message {
HelloServer,
HelloClient,
}
enum Event {
Network(NetEvent<Message>),
}
fn main() {
let mut event_queue = EventQueue::new();
let network_sender = event_queue.sender().clone();
let mut network = NetworkManager::new(move |net_event| network_sender.send(Event::Network(net_event)));
network.listen("127.0.0.1:3001".parse().unwrap(), TransportProtocol::Tcp).unwrap();
network.listen("0.0.0.0.0:3002".parse().unwrap(), TransportProtocol::Tcp).unwrap();
loop {
match event_queue.receive() { Event::Network(net_event) => match net_event {
NetEvent::Message(message, endpoint) => match message {
Message::HelloServer => network.send(endpoint, Message::HelloClient).unwrap(),
_ => (), },
NetEvent::AddedEndpoint(_endpoint) => println!("Client connected"),
NetEvent::RemovedEndpoint(_endpoint) => println!("Client disconnected"),
},
}
}
}