首页 > 解决方案 > 在 Blazor 服务器端上传文件时有没有办法避免 SignalR

问题描述

我有一个Blazor 应用程序(服务器端)作为应用程序服务托管在Azure中,我使用Azure SignalR 服务能够扩展同时连接的用户数量。我还有一个页面,您可以在其中上传文件,文件可能很大,甚至 1GB 甚至更多,我正在使用Tewr.Blazor.FileReader (Nuget)分块读取文件并将其上传到保存文件的 API到服务器。但我想知道在上传文件时是否有可能以某种方式避免 SignalR 部分,因为对于 2GB 文件,Azure SignalR 将每条消息分成 2KB/each,这意味着我达到了1M messages/day/unit的限制,仅用于上传 1 个文件。让我知道我可以解决这个问题的所有方法,目前我想到的解决方案很少:

标签: javascriptc#azuresignalrblazor

解决方案


如果您使用标准 DOM 事件(例如onchanged=someJavaSciptFunction),那么浏览器将运行 JavaScript 以响应该事件。

如果您在 UI 元素上设置了适当的 JS 脚本,那么您可以让 JS 向您的 API 发出 HTTP 请求。这将完全避免 SignalR。


推荐阅读