У меня есть приложение, созданное с использованием стека SAFE, в котором активные клиенты имеют соответствующие объекты на стороне сервера. Когда пользователь закрывает окно своего браузера, я хотел бы, чтобы на сервер было отправлено сообщение об удалении этого объекта.
Я пытаюсь использовать событие "onunload", например:
module WindowEvents =
let unloadSub _ =
let setUnloadEvent dispatch =
Browser.Dom.window.onunload <- (fun _ -> dispatch CloseEvent)
Cmd.ofSub setUnloadEvent
и я добавляю это к подпискам:
Program.mkProgram Model.init Model.update View.render
|> Program.withSubscription WindowEvents.unloadSub
Сообщение обрабатывается обычным способом Elmi sh и пересылается на сервер через API. Тем не менее, я считаю, что сообщение редко приходит на сервер. Что я могу сделать, чтобы сделать это более надежным? Или есть альтернативный подход, который был бы лучше?