Jas*_*n D 4 signalr blazor blazor-server-side
我正在构建 Blazor 服务器端数据库应用程序。
我的要求之一是用户可以在不同的选项卡中打开每个网站页面。
我发现打开 5 个选项卡后,任何新页面都被阻止呈现。如果我关闭一页,则可以呈现第 6 页。显然,这是因为浏览器一次只能支持有限数量的 SignalR 连接。我读过 Chrome 的限制是一次 6 个(虽然我只能让 5 个工作)。
Chrome 中的错误消息:
Error: Connection disconnected with error 'Error: Server returned handshake error: Handshake was canceled.'
Error: Error: Server returned handshake error: Handshake was canceled.
Uncaught (in promise) Error: Cannot send data if the connection is not in the 'Connected' State.
at e.send (blazor.server.js:1)
Run Code Online (Sandbox Code Playgroud)
这个问题有解决方案吗?或者我是否需要探索移植到 Blazor 客户端?
我找到了有关此主题的以下文章,但不确定它是否可以应用于 Blazor 应用程序: SignalR 和浏览器连接限制
这有点可怕,因为我已经构建了相当多的代码,并且不想花太多时间尝试破解解决方法。
小智 5
我终于设法在我的内部网络上复制了它,现在我已经安装了 WebSockets 似乎已经解决了。
安装后,我打开了 blazor 服务器应用程序的 20 个选项卡,每个选项卡都在不同的页面上,并且问题没有再次出现(我还对每个选项卡进行了几次刷新以确保)。
我在阅读后遇到了这个
由于较低的延迟、可靠性和安全性,Blazor 在使用 WebSockets 作为 SignalR 传输时效果最佳。当 WebSockets 不可用或应用明确配置为使用长轮询时,SignalR 会使用长轮询。