summaryrefslogtreecommitdiff
path: root/src/boot/app.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2025-04-10 20:50:13 -0400
committerOwen Jacobson <owen@grimoire.ca>2025-04-10 20:50:13 -0400
commit1ef57107b1c355ef896327f0714344277df7ae18 (patch)
tree9874d3d61f0bdb13913c6c4d079fbb82b336f656 /src/boot/app.rs
parent0fc3057b05dddb4eba142deeb6373ed37e312c60 (diff)
parent1ee129176eb71f5e246462b66fd9c9862ed1ee7a (diff)
Use a heartbeat to allow the client to reconnect after network failures.
Diffstat (limited to 'src/boot/app.rs')
-rw-r--r--src/boot/app.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/boot/app.rs b/src/boot/app.rs
index f531afe..cd45c38 100644
--- a/src/boot/app.rs
+++ b/src/boot/app.rs
@@ -3,7 +3,7 @@ use sqlx::sqlite::SqlitePool;
use super::Snapshot;
use crate::{
channel::{self, repo::Provider as _},
- event::repo::Provider as _,
+ event::{Heartbeat, repo::Provider as _},
message::repo::Provider as _,
name,
user::{self, repo::Provider as _},
@@ -21,6 +21,7 @@ impl<'a> Boot<'a> {
pub async fn snapshot(&self) -> Result<Snapshot, Error> {
let mut tx = self.db.begin().await?;
let resume_point = tx.sequence().current().await?;
+ let heartbeat = Heartbeat::TIMEOUT;
let users = tx.users().all(resume_point).await?;
let channels = tx.channels().all(resume_point).await?;
@@ -45,6 +46,7 @@ impl<'a> Boot<'a> {
Ok(Snapshot {
resume_point,
+ heartbeat,
users,
channels,
messages,