catcolab_backend/
socket.rs1use socketioxide::extract::{Data, SocketRef};
2use tracing::{error, info};
3
4use super::app::AppState;
5use super::document as doc;
6
7pub fn setup_automerge_socket(state: AppState) {
9 let io = state.automerge_io.clone();
10
11 io.ns("/", |socket: SocketRef| {
12 info!("Automerge socket connected at namespace {}", socket.ns());
13
14 socket.on("autosave", |_: SocketRef, Data::<doc::RefContent>(data)| async move {
15 if let Err(err) = doc::autosave(state, data).await {
16 error!("Autosave failed with error: {}", err);
17 }
18 });
19 });
20}