mod.rs 838 B

123456789101112131415161718192021222324252627
  1. use crate::configuration::ClientServerConfiguration;
  2. use tokio::sync::{broadcast, mpsc};
  3. mod persistence;
  4. mod server;
  5. mod ws;
  6. pub use server::*;
  7. pub use ws::*;
  8. pub struct LocalServerContext {
  9. pub local_ws: LocalWebSocket,
  10. pub local_server: LocalServer,
  11. }
  12. pub fn build_server(_config: &ClientServerConfiguration) -> LocalServerContext {
  13. let (client_ws_sender, server_ws_receiver) = mpsc::unbounded_channel();
  14. let (server_ws_sender, _) = broadcast::channel(16);
  15. // server_ws_sender -> client_ws_receiver
  16. // server_ws_receiver <- client_ws_sender
  17. let local_ws = LocalWebSocket::new(server_ws_receiver, server_ws_sender.clone());
  18. let client_ws_receiver = server_ws_sender;
  19. let local_server = LocalServer::new(client_ws_sender, client_ws_receiver);
  20. LocalServerContext { local_ws, local_server }
  21. }