gpt4 book ai didi

signalr - 为什么多次收到此 SignalR 消息?

转载 作者:行者123 更新时间:2023-12-04 13:05:30 29 4
gpt4 key购买 nike

我在 Blazor 服务器端应用程序中使用 SignalR。我将 Microsoft.AspNetCore.SignalR.Client Nuget 包 (v5.0.11) 添加到项目中,并使用以下代码创建集线器连接...

HubConnection hubConnection = new HubConnectionBuilder()
.WithUrl("url")
.Build();
await hubConnection.StartAsync();

然后我发送了一条包含以下代码的消息(添加了Debug.WriteLine 以确认发生了什么)...

Debug.WriteLine($"{DateTime.Now.ToLongTimeString()} SignalR msg sent");
await hubConnection.SendAsync("Send", "Hello");

处理此类消息的组件创建集线器连接并连接到 On 处理程序,如下所示...

HubConnection hubConnection = new HubConnectionBuilder()
.WithUrl("url")
.Build();
hubConnection.On<string>("Receive", msg =>
Debug.WriteLine($"{DateTime.Now.ToLongTimeString()} SignalR msg received - {msg}"));
await hubConnection.StartAsync();

当消息发出时,它肯定只被发送一次(我可以从输出面板确认,我只看到一次“发送”输出),但它被接收了两次。

四处搜索,似乎一个常见的原因是 jQuery 被加载了两次。但是,我已经检查过,事实并非如此。它只被加载一次。此外,团队中的一位其他开发人员尝试了它,他收到了 15 次消息!即使我们不小心包含了 jQuery 两次,我们也肯定没有包含它 15 次。此外,他使用的代码与我完全相同(已从源代码管理中 check out ),因此如果这是问题所在,我们应该会得到相同的结果。

有人知道为什么会这样吗?谢谢

最佳答案

当您在组件中初始化 HubConnection 并且未在您的组件上配置 IDisposeIAsyncDispose 以处置 HubConnection 时,可能会发生这种情况.

关于signalr - 为什么多次收到此 SignalR 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69666602/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com