gpt4 book ai didi

c# - 带有 ASP.NET Core 的 SignalR 不使用 websockets 但使用长轮询

转载 作者:行者123 更新时间:2023-11-30 13:36:08 24 4
gpt4 key购买 nike

我刚刚用 ASP.NET Core 和 SignalR 做了简单测试(我使用了这个版本 - 0.1.0-rtm-21431 - https://www.myget.org/feed/aspnetmaster/package/nuget/Microsoft.AspNetCore.SignalR.Server - 猜想这是 .NET Core 支持的最新版本,但是当我错了我)并注意到它正在使用长轮询(我使用 Charles 嗅探了 http 请求)。

我使用 SignalR 2.2.1 对 ASP.NET 4.6.1 进行了相同的测试 - https://www.nuget.org/packages/Microsoft.AspNet.SignalR/并且它很好地使用了 WebSockets。

我注意到使用长轮询时我的测试应用程序明显变慢,有时客户端之间存在差异。

知道为什么 SignalR for AspNetCore 不使用 WebSockets 而是使用长轮询吗?是我的配置错误还是 .NET Core 的 SignalR 还不支持 websockets?

最佳答案

要使用 websockets,您需要先启用 websockets 中间件。

来自官方SignalR sample :

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(LogLevel.Debug);

app.UseFileServer();

app.UseWebSockets();
app.UseSignalR<RawConnection>("/raw-connection");
app.UseSignalR();
}

尽管并非所有操作系统都支持 websockets(需要 Win8 或更高版本,或者 Windows Server 2012 或 2008 R2 及更高版本),因此它们仍可能回退到长轮询。

截至撰写本文时,唯一可与 ASP.NET Core 1.0.0 兼容的版本是 0.1.0-rtm-21431

所有较新的版本都是针对 ASP.NET Core 每晚构建的,这也需要每晚版本的 .NET Core 运行时/SDK。不建议使用夜间构建,除非您正在为 ASP.NET Core 1.1 编写一些库,因为夜间构建经常由于不完整的包构建和最新 .NET Core 运行时的要求而中断。

关于c# - 带有 ASP.NET Core 的 SignalR 不使用 websockets 但使用长轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795019/

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