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

Blazor Server # of connections per use is limited by the browser

我正在构建 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)

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

我找到了以下关于此主题的文章,但不确定它是否可以应用于 Blazor 应用程序: SignalR and Browser Connection limit

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

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

  1. 打开服务器管理器
  2. 打开添加角色和功能
  3. 展开WebServer (IIS)
  4. 展开应用开发
  5. Select WebSocket 协议

安装后,我打开了我的 Blazor 服务器应用程序的 20 个选项卡,每个选项卡都在不同的页面上,但问题没有 re-occur(我还对每个选项卡进行了几次刷新以确保)。

看完之后我发现了这个

Blazor works best when using WebSockets as the SignalR transport due to lower latency, reliability, and security. Long Polling is used by SignalR when WebSockets isn't available or when the app is explicitly configured to use Long Polling.

From the Blazor docs.