如何解决Blazor Server每次使用的连接数受浏览器限制
我正在构建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 Client的移植?
我找到了有关此主题的以下文章,但不确定是否可以将其应用于Blazor应用程序: SignalR and Browser Connection limit
这有点吓人,因为我已经构建了很多代码,并且不想花太多时间尝试破解解决方法。
解决方法
我终于设法将其复制到我的内部网络上,现在我已经安装了WebSockets,似乎已经解决了。
- 打开服务器管理器
- 打开添加角色和功能
- 展开 WebServer(IIS)
- 扩展应用程序开发
- 选择 WebSocket协议
安装此工具后,我打开了blazor服务器应用程序的20个选项卡,每个选项卡都位于不同的页面上,并且没有再次出现此问题(当然,我也对每个选项卡进行了几次刷新)。
我在阅读后发现了这一点
由于将WebSockets用作SignalR传输,Blazor的工作效率最高,因为它具有较低的延迟,可靠性和安全性。当WebSockets不可用或将应用程序显式配置为使用长轮询时,SignalR将使用长轮询。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。