Blazor服务器每次使用的连接数受浏览器限制



我正在构建Blazor服务器端数据库应用程序。

我的要求之一是用户可以在不同的选项卡中打开每个网站页面

我发现,在打开5个选项卡后,任何新页面都会被阻止呈现。如果我关闭一个页面,那么第六个页面可以呈现。显然,这是因为浏览器一次可以支持有限数量的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)

这个问题有解决办法吗?还是我需要探索移植到Blazor客户端?

我找到了关于这个主题的以下文章,但不确定它是否可以应用于Blazor应用程序:SignalR和浏览器连接限制

这有点可怕,因为我已经构建了相当多的代码,不想花太多时间试图破解解决方案。

我终于成功地在我的内部网络上复制了它,现在我已经安装了WebSockets,它似乎已经得到了解决。

  1. 打开服务器管理器
  2. 打开添加角色和功能
  3. 展开Web服务器(IIS(
  4. 展开应用程序开发
  5. 选择WebSocket协议

安装后,我打开了我的blazor服务器应用程序的20个选项卡,每个选项卡都在不同的页面上,问题没有再次出现(为了确保安全,我还对每个选项卡进行了几次刷新(。

我在阅读后发现了这个

Blazor在使用WebSockets作为SignalR传输时效果最佳,因为它具有较低的延迟、可靠性和安全性。当WebSockets不可用或应用程序被明确配置为使用长轮询时,SignalR会使用长轮询。

来自Blazor文档。

相关内容

  • 没有找到相关文章

最新更新