net: geometric backoff connection retries on disconnects

This commit is contained in:
William Casarin
2023-12-24 14:23:29 -08:00
parent 6dee4bbe7d
commit f46797ea10
3 changed files with 61 additions and 10 deletions

View File

@@ -63,6 +63,14 @@ impl Relay {
self.sender.send(txt);
}
pub fn connect(&mut self, wakeup: impl Fn() + Send + Sync + 'static) -> Result<()> {
let (sender, receiver) = ewebsock::connect_with_wakeup(&self.url, wakeup)?;
self.status = RelayStatus::Connecting;
self.sender = sender;
self.receiver = receiver;
Ok(())
}
pub fn ping(&mut self) {
let msg = WsMessage::Ping(vec![]);
self.sender.send(msg);