【问题标题】:Why does SignalR require adding response compression of type "application/octet-stream"?为什么 SignalR 需要添加类型为“application/octet-stream”的响应压缩?
【发布时间】:2021-08-23 18:11:24
【问题描述】:

Microsoft Docs article 展示了如何在 Blazor 应用中配置 SignalR。有一个步骤为application/octet-stream MIME 类型添加响应压缩中间件:

services.AddSignalR();
services.AddControllersWithViews();
services.AddRazorPages();
services.AddResponseCompression(opts =>
{
    opts.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
        new[] { "application/octet-stream" });
});

但是,可以注意到在显示how to configure SignalR for an ASP.NET Core App(使用 JavaScript 库)的文章中跳过了这一步。

我正在尝试为 ASP.NET Core MVC 应用程序配置 SignalR,但它位于预渲染的 Razor 组件中,因此我按照 Blazor 文章中的说明进行配置。我的应用程序的其他部分涉及上传和下载图像和电子表格,所以我也想知道添加上述响应压缩是否会干扰这些操作。

有人能解释一下是否需要以及为什么需要这一步吗?它有什么显着的区别吗? 我想是为了优化 SignalR 连接上二进制消息的传输。

【问题讨论】:

    标签: c# asp.net asp.net-core signalr blazor


    【解决方案1】:

    有人能解释一下是否需要以及为什么需要这一步吗?它使 有什么显着差异吗?我想是为了优化 通过 SignalR 连接传输二进制消息。

    在 Blazor 中使用 asp.net core SignalR 时不需要响应压缩中间件。在this tutorial中,如果去掉Startup.cs文件中的services.AddResponseCompression()app.UseResponseCompression();,SignalR仍然可以正常工作。

    更详细的信息,你可以查看the Response Compression Middleware,它用于动态压缩响应体,降低带宽利用率。

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 2011-09-19
      • 2017-11-01
      • 1970-01-01
      • 2012-05-06
      • 2013-11-16
      • 1970-01-01
      • 2020-08-01
      相关资源
      最近更新 更多