首页 > 解决方案 > 如何使用“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 转发到服务器。但是,我发现消息很少到达服务器端。我可以做些什么来使它更可靠吗?还是有更好的替代方法?

标签: f#elmishsaturn-frameworkfablesafe-stack

解决方案


推荐阅读