【发布时间】:2020-09-14 02:03:20
【问题描述】:
当我尝试从 Blazor 函数调用 JavaScript 函数时,我的服务器端 Blazor 应用程序和服务器之间的连接中断,当函数返回一个长度超过 32,721 个字符的字符串时。我'
在我的 Razor 页面中执行:
var data = await JsRuntime.InvokeAsync<string>("myfunction");
JavaScript 函数myfunction 如下所示:
function myfunction() {
return 'x'.repeat(32721);
}
这可行,但是当我使用 32722 作为参数时,连接中断,我不知道为什么以及如何解决这个问题。
将字符串拆分为 1000 字节长的 chungs 并返回 string[] 也不起作用。
我需要返回大约 200.000 个字节。有什么限制吗?
查看 websocket 的消息,我可以看到 103kB 的消息,然后是“JS.RenderBatch”、“OnRenderCompleted”,最后是“连接因错误而关闭”,但我在任何控制台或日志中都找不到任何错误消息。
【问题讨论】:
-
这是 SignalR 消息大小限制。见this GitHub issue。还有this from the MS docs 将响应分块以解决消息大小限制。
-
我愿意接受这个作为答案。谢谢!