javascript - 在 Blazor 服务器端上传文件时有没有办法避免 SignalR
问题描述
我有一个Blazor 应用程序(服务器端)作为应用程序服务托管在Azure中,我使用Azure SignalR 服务能够扩展同时连接的用户数量。我还有一个页面,您可以在其中上传文件,文件可能很大,甚至 1GB 甚至更多,我正在使用Tewr.Blazor.FileReader (Nuget)分块读取文件并将其上传到保存文件的 API到服务器。但我想知道在上传文件时是否有可能以某种方式避免 SignalR 部分,因为对于 2GB 文件,Azure SignalR 将每条消息分成 2KB/each,这意味着我达到了1M messages/day/unit的限制,仅用于上传 1 个文件。让我知道我可以解决这个问题的所有方法,目前我想到的解决方案很少:
- 将单独的 SignalR 应用托管为应用服务,而不是使用Azure SignalR
- iframe该页面到仅处理文件传输的ASP.NET Core 应用程序。(不确定这是否会触发 SignalR 流量)
解决方案
如果您使用标准 DOM 事件(例如onchanged=someJavaSciptFunction
),那么浏览器将运行 JavaScript 以响应该事件。
如果您在 UI 元素上设置了适当的 JS 脚本,那么您可以让 JS 向您的 API 发出 HTTP 请求。这将完全避免 SignalR。
推荐阅读
- javascript - 尝试从下拉列表中选择一个值
- python - Anaconda Navigator (1.9.7) 卡在离线模式 - Mac
- react-native - 在全新项目中升级到 0.61.1 后反应原生版本不匹配
- curl - 如何使用 curl 命令为 Watson NLU 指定输入文件?
- c - 如何将文件中的每个字符存储到c中的数组中
- python - 我无法使用 OpenCV 和 Python 拆分所有手写字母
- java - 如何在 Spring + Thymeleaf 上添加弹出窗口
- c++ - c++ 生成线程安全的随机数
- c# - 仅使用第一个数组值填充数组的 C# Excel 范围分配
- reactjs - 如何为主题覆盖设置引导材料设计反应