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

0 ответов

Другие вопросы по тегам