SignalR In ASP.Net Core〜1.1
我想在Asp.Net Core 1.1中创建实时应用程序,但我不能再使用signalr在我的应用程序中,帮助我选择哪种框架对我更好?我必须选择node.js或MicroSoft有解决方案吗?我可以使用与signalr类似的Alternative框架? !SignalR In ASP.Net Core〜1.1
Microsoft.AspNetCore版本1.1.1 Microsoft.AspNetCore.Mvc版本1.1.1
- 添加https://dotnet.myget.org/f/aspnetcore-ci-dev/api/v3/index.json可用包源(工具/选项/ NuGet包管理器/包源)
- 安装Microsoft.AspNetCore.SignalR.Server包版本0.2.0-preview2-22683。您可能需要调整“包裹来源”并选中NuGet包裹管理器中的“包括预发布”复选框才能在搜索结果中查看包裹。
- 安装Microsoft.AspNetCore.WebSockets程序包(版本1.0.1)。
- 将services.AddSignalR(),app.UseWebSockets()和app.UseSignalR()调用添加到Startup.cs。
适用于Visual Studio 2017和.NET Core 1.1.1。
好像你可以在ASP.NET核心使用SignalR 2,现在1.1的应用程序,只要他们的目标是完整的.NET框架而不是.NET核心。
为了这个工作,你需要为OWIN创建一个Middleware-Wrapper。 Yatajga有a nice sample over at MSDN。
这里有一个有趣的现象(取自说样品):
using Microsoft.Owin.Builder;
using Owin;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
namespace RealTimeDataEditor
{
using AppFunc = Func<IDictionary<string, object>, Task>;
public static class BuilderExtensions
{
public static IApplicationBuilder UseAppBuilder(
this IApplicationBuilder app,
Action<IAppBuilder> configure)
{
app.UseOwin(addToPipeline =>
{
addToPipeline(next =>
{
var appBuilder = new AppBuilder();
appBuilder.Properties["builder.DefaultApp"] = next;
configure(appBuilder);
return appBuilder.Build<AppFunc>();
});
});
return app;
}
public static void UseSignalR2(this IApplicationBuilder app)
{
app.UseAppBuilder(appBuilder => appBuilder.MapSignalR());
}
}
}
而这样一来,你可以简单地调用app.UseSignalR2();
配置()方法中的Startup.cs文件。
声明:SignalR 2尚未针对ASP.NET Core开发,因此在生产中使用SignalR 2时可能会遇到一些问题。
仅供参考https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json(1.0.0 *)中的signalr软件包现在只针对.NETStandard版本= v2.0平台。
老包(0.2.0 *)用于ASP.NET 1.1内核可以在仓库 https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json
THX乌拉圭回合的答案被找到,但这种解决方案只是为ASPNETCORE.NET462工作。 并不适用于ASPNETCORE.NETCORE :( https://www.youtube.com/watch?v=wIsync6vTfQ – soroushdes
是的,这就是我在第一句话中所说的;-)但是如果你打算在跑步无论如何,在Windows硬件上,这可能是最简单的解决方案。 – Thomas