【问题标题】:SignalR takes a long time to respond to a heartbeatSignalR 需要很长时间才能响应心跳
【发布时间】:2021-04-06 15:21:53
【问题描述】:

我使用具有以下自定义的 Web App MVC 应用程序模板,使用 Visual Studio 和 SignalR 创建了一个非常简单的 ASP.NET Core 应用程序:

  • 通过 libman 添加了对 @microsoft/signalr 库的引用,
  • _Layout.cshtml 中引用了<script src="~/lib/microsoft-signalr/signalr.min.js"></script>
  • 在 Startup.cs 中添加了所需的 SignalR 服务并创建了一个空 Hub,以如下方式公开:
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapHub<MyHub>("hub/remote");
                // ... MVC router definitions
            }
  • 在 JS 中创建了 SignalR 连接:
const connection =
    new signalR.HubConnectionBuilder()
        .withUrl("/hub/remote")
        .configureLogging(signalR.LogLevel.Trace)
        .withAutomaticReconnect()
        .build();

connection.start().then(() => console.log("Connected."));

然后我启动了 MVC 应用程序,一切正常启动。 但是,我仔细查看了 SignalR 日志消息:

我相信这是 SignalR 的内部心跳,它使连接保持活动状态。 我想知道为什么从发送消息到收到响应需要 4-5 秒?

我还尝试在更复杂的应用程序中使用 SignalR,有时我什至开始接收“重新连接”事件,因为那里的负载明显更大。

这让我觉得我在配置连接时做错了什么,但不知道到底是什么。

【问题讨论】:

  • “连接速度慢”不是 ASP.NET Core SignalR 中的事件。并且心跳之间没有直接关系,所以间隙是正常的。
  • 回复:连接速度慢 - 你是对的。我已经习惯了非核心 SignalR :)。回复:差距,好的,感谢您确认。
  • @Brennan 看起来没有其他 cmets。你能把你的评论变成答案让我接受吗?

标签: c# asp.net-core signalr asp.net-core-signalr


【解决方案1】:

“连接缓慢”不是 ASP.NET Core SignalR 中的事件。

心跳之间没有直接关系,所以客户端和服务器ping之间的差距是正常的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多