Как использовать событие onunload для отправки сообщения на сервер в SAFE Stack?
У меня есть приложение, построенное с использованием стека 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
Сообщение обрабатывается обычным способом Elmish и пересылается на сервер через api. Однако я обнаружил, что сообщение приходит на сервер очень редко. Что я могу сделать, чтобы сделать это более надежным? Или есть альтернативный подход, который был бы лучше?