Asp.net-Core

如何在 blazor 伺服器端關閉頁面時獲取事件?

  • January 30, 2020

我正在 blazor 伺服器端製作聊天室應用程序。

我想顯示每個使用者的線上狀態。

現在我可以使用該OnAfterRenderAsync事件來獲取使用者已進入頁面。

通過https://docs.microsoft.com/en-us/aspnet/core/blazor/lifecycle?view=aspnetcore-3.1exit在 blazor 生命週期中似乎沒有任何事件

有人說我可以使用該Dispose事件來實現它,而它確實有效。

更何況我有個瘋狂的想法,就是用window.onbeforeunloadjs的事件來呼叫blazor方法。

我不知道哪一個是最好的。你能給我一個建議嗎?謝謝你。

為此,您應該在伺服器上實現CircuitHandler

您可以在此處找到文件https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.server.circuits.circuithandler?view=aspnetcore-3.1

它使您能夠對電路的生命週期事件做出反應,電路是 Blazor 伺服器連接的主幹。

方法

OnCircuitClosedAsync (Circuit, CancellationToken)

在丟棄新電路時呼叫。

OnCircuitOpenedAsync (Circuit, CancellationToken)

在建立新電路時呼叫。

OnConnectionDownAsync (Circuit, CancellationToken)

當與客戶端的連接斷開時呼叫。

OnConnectionUpAsync (Circuit, CancellationToken) 在建立與客戶端的連接時呼叫。- 此方法最初在 OnCircuitOpenedAsync(Circuit, CancellationToken) 之後執行一次,並且在電路的生命週期內每次重新連接一次。

引用自:https://stackoverflow.com/questions/59980882