相关疑难解决方法(0)

HTML5本地存储与会话存储

除了非持久性和仅限于当前窗口的范围之外,对本地存储的会话存储有任何好处(性能,数据访问等)吗?

javascript html5 session-storage local-storage

527
推荐指数
9
解决办法
29万
查看次数

如何在 Blazor 服务器端的 CircuitHandler 中调用方法?

我正在通过 Blazor 服务器端制作聊天室应用程序。我想显示每个用户的在线状态。

我在如何在 blazor 服务器端关闭页面时获取事件中询问了如何在关闭页面时获取事件的问题?

现在看来这CircuitHandler是最好的选择。

当用户关闭页面时,我想在数据库中设置一个用户状态从在线到离线。而且,每个用户的主键暂时存储在index.razor.

但是现在OnCircuitClosedAsync(Circuit, CancellationToken)跑完之后,不知道怎么调用方法来实现这个(无法获取到Blazor前端的变量,也无法调用前端的Blazor方法)。

PS:这里是后端的代码:

using Microsoft.AspNetCore.Components.Server.Circuits;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;


namespace BlazorCircuitHandler.Services
{
    public class CircuitHandlerService : CircuitHandler
    {
        public ConcurrentDictionary<string, Circuit> Circuits { get; set; }

        public CircuitHandlerService()
        {
            Circuits = new ConcurrentDictionary<string, Circuit>();
        }

        public override Task OnCircuitOpenedAsync(Circuit circuit, CancellationToken cancellationToken)
        {
            Circuits[circuit.Id] = circuit;
            return base.OnCircuitOpenedAsync(circuit, cancellationToken);
        }

        public override Task OnCircuitClosedAsync(Circuit circuit, CancellationToken cancellationToken)
        {
            Circuit circuitRemoved;
            Circuits.TryRemove(circuit.Id, …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core blazor blazor-server-side

6
推荐指数
1
解决办法
2583
查看次数