我正在服务器的服务器端制作一个聊天室应用程序。
我想显示每个用户的在线状态。
现在,我可以使用OnAfterRenderAsync
事件让用户进入该页面。
在炽热生命周期中似乎没有通过https://docs.microsoft.com/en-us/aspnet/core/blazor/lifecycle?view=aspnetcore-3.1的exit
事件
有人说我可以使用Dispose
事件来实现它,尽管它确实可以工作。
此外,我有一个疯狂的想法,就是使用js的window.onbeforeunload
事件来调用blazor方法。
我不知道哪个是最好的。你能给我一个建议吗?谢谢。
答案 0 :(得分:6)
您应该为此在服务器上实现 CircuitHandler 。
中找到文档它使您能够对Circuit的生命周期事件做出反应,Circuit是Blazor Server连接的中枢。
OnCircuitClosedAsync (电路,CancellationToken)
丢弃新电路时调用。
OnCircuitOpenedAsync (电路,CancellationToken)
建立新电路时调用。
OnConnectionDownAsync (电路,CancellationToken)
断开与客户端的连接时调用。
OnConnectionUpAsync (电路,CancellationToken) 建立与客户端的连接时调用。 -该方法最初在OnCircuitOpenedAsync(Circuit,CancellationToken)之后执行一次,并且在电路的生命周期中每次重新连接均执行一次。