JsRuntime.InvokeAsync 是否有 return 值大小限制?

Has JsRuntime.InvokeAsync a return value size limitation?

当我尝试从 Blazor 函数调用 JavaScript 函数时,我的服务器端 Blazor 应用程序与服务器之间的连接中断,当函数 return 是一个长度超过 32,721 个字符的字符串时。我

在我的 Razor 页面中,我执行:

var data = await JsRuntime.InvokeAsync<string>("myfunction");

JavaScript 函数 myfunction 看起来像这样:

function myfunction() {
  return 'x'.repeat(32721);
}

这有效,但是当我使用 32722 作为参数时,连接中断,我不知道为什么以及如何解决这个问题。

将字符串拆分为 1000 字节长的 chungs 和 returning 一个字符串[] 也没有效果。

我需要 return 大约 200.000 字节。有什么限制吗?

观察 websocket 的消息,我可以看到 103kB 的消息,然后是“JS.RenderBatch”、“OnRenderCompleted”,最后是“Connection closed with an error”,但我找不到任何错误消息控制台或日志。

这是 SignalR 消息大小限制。请参阅 this GitHub issue. There's also this from the MS docs 分块响应以绕过消息大小限制。