SignalR 需要很长时间才能响应心跳
SignalR takes a long time to respond to a heartbeat
我创建了一个非常简单的 ASP.NET 核心应用程序和 SignalR Visual Studio 使用具有以下自定义的 Web 应用程序 MVC 应用程序模板:
- 通过 libman 添加了对@microsoft/signalr 库的引用,
- 在
_Layout.cshtml
、 中引用了<script src="~/lib/microsoft-signalr/signalr.min.js"></script>
- 在 Startup.cs 中添加了所需的 SignalR 服务并创建了一个空的集线器,以下列方式公开:
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 中的事件。
心跳之间没有直接关系,因此客户端和服务器 ping 之间的差距是正常的。
我创建了一个非常简单的 ASP.NET 核心应用程序和 SignalR Visual Studio 使用具有以下自定义的 Web 应用程序 MVC 应用程序模板:
- 通过 libman 添加了对@microsoft/signalr 库的引用,
- 在
_Layout.cshtml
、 中引用了 - 在 Startup.cs 中添加了所需的 SignalR 服务并创建了一个空的集线器,以下列方式公开:
<script src="~/lib/microsoft-signalr/signalr.min.js"></script>
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 中的事件。
心跳之间没有直接关系,因此客户端和服务器 ping 之间的差距是正常的。