mon*_*oh_ 3 c# asp.net signalr asp.net-core
我刚刚使用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而是长轮询吗?是我的配置错误还是SignalR for .NET Core不支持websockets?
Tse*_*eng 10
要使用websockets,您需要首先启用websockets中间件.
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(LogLevel.Debug);
app.UseFileServer();
app.UseWebSockets();
app.UseSignalR<RawConnection>("/raw-connection");
app.UseSignalR();
}
Run Code Online (Sandbox Code Playgroud)
虽然每个操作系统(Win8或更高版本或Windows Server 2012或2008 R2及更高版本)不支持websockets,但它们仍可能会回退到长轮询.
截至撰写本文时,可与ASP.NET Core 1.0.0一起使用的唯一兼容版本是0.1.0-rtm-21431.
所有较新的版本都是针对ASP.NET Core夜间版本构建的,这些版本还需要夜间版本的.NET Core运行时/ SDK.除非您为ASP.NET Core 1.1编写一些库,否则不建议使用每晚构建,因为夜间构建经常由于不完整的包构建和最新.NET Core运行时的需求而中断.
| 归档时间: |
|
| 查看次数: |
3802 次 |
| 最近记录: |