Как использовать событие «onunload» для отправки сообщения на сервер в SAFE Stack? - PullRequest
1 голос
/ 12 апреля 2020

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

...