【问题标题】:Push data server to client web app, how to?将数据服务器推送到客户端 Web 应用程序,如何?
【发布时间】:2023-03-23 15:00:01
【问题描述】:

(关于 Web 应用程序,asp.net 5)

我是新手,我想将数据从服务器推送到客户端。在网站上显示“实时”数据。 (类似于聊天窗口)。

我应该如何意识到这一点?我读过有关 SingalR 的信息,但大多数信息似乎已经过时了?这仍然是一个不错的选择吗?

例如,我遇到的问题之一是当我尝试添加以下内容时: app.MapSignalR(); 到我的startup.cs

错误 CS1061“IApplicationBuilder”不包含“MapSignalR”的定义,并且找不到接受“IApplicationBuilder”类型的第一个参数的扩展方法“MapSignalR”

有人能指出正确的方向吗?

【问题讨论】:

  • 您是否从 NuGet 安装了 Microsoft.AspNet.SignalR 包?本教程:asp.net/signalr/overview/getting-started/… 展示了如何编写简单的聊天。它已经很老了(1.5 年),但我相信它仍然是准确的。我在一些项目中使用了 SignalR,它工作得很好......
  • 感谢您的回复。我确实尝试过那个教程,但我在 Asp.Net 5 中没有这个“IAppBuilder”,我有 IApplicationBuilder。因此 app.MapSignalR();不会工作,我不知道如何解决这个问题。

标签: asp.net signalr push real-time


【解决方案1】:

我相信你可以使用a bridge between IAppBuilder and IApplicationBuilder 来做到这一点,如图所示here:

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;
}

然后你会call from startup 启动 SignalR:

public void Configure(IApplicationBuilder app)
{
    app.UseAppBuilder(appBuilder =>
    {
        appBuilder.MapSignalR();

        appBuilder.Run(context =>
        {

        });
    });
}

一些上下文,摘自上面的链接:

[在 ASP.NET 5 中,现在是 ASP.NET Core 1.0] Startup 类约定 已被提炼。 Katana [以前的版本] 会搜索一个 指定 OwinStartup 属性然后回退的程序集 在所有程序集中搜索名为 Startup 的类或 装配名称.启动。 ASP.NET 没有定义属性,它只是 在主应用程序程序集中搜索名为 Startup 的类型(在 任何命名空间)。 Configuration(IAppBuilder app) 方法现在是 Configure(IApplicationBuilder app)...

无法删除 IAppBuilder 或 OwinMiddleware 的中间件 依赖项可以使用修改后的方法在 ASP.NET 5 中运行。请参阅此 IApplicationBuilder 扩展的链接示例,它提供了 IAppBuilder 与基于 Katana v3 的中间件一起使用。这个扩展 创建一个新的 AppBuilder 实例,然后包装 OWIN 管道 围绕它的构建器模式以集成到 ASP.NET 5 中。

【讨论】:

    猜你喜欢
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多