conn.rs 804 B

12345678910111213141516171819
  1. use lib_infra::future::FutureResult;
  2. use std::sync::Arc;
  3. use tokio::sync::broadcast;
  4. pub use flowy_error::FlowyError;
  5. pub use lib_ws::{WSConnectState, WSMessageReceiver, WebScoketRawMessage};
  6. pub trait FlowyWebSocket: Send + Sync {
  7. fn start_connect(&self, addr: String) -> FutureResult<(), FlowyError>;
  8. fn stop_connect(&self) -> FutureResult<(), FlowyError>;
  9. fn subscribe_connect_state(&self) -> broadcast::Receiver<WSConnectState>;
  10. fn reconnect(&self, count: usize) -> FutureResult<(), FlowyError>;
  11. fn add_message_receiver(&self, handler: Arc<dyn WSMessageReceiver>) -> Result<(), FlowyError>;
  12. fn ws_sender(&self) -> Result<Arc<dyn FlowyWsSender>, FlowyError>;
  13. }
  14. pub trait FlowyWsSender: Send + Sync {
  15. fn send(&self, msg: WebScoketRawMessage) -> Result<(), FlowyError>;
  16. }