SignalR 行实时通信最大连接数
SignalR 搭建实时刷新应用虽然非常方便,但是有个问题你必须考虑到,就是一般的浏览器,对于SignalR的全双工通信方式,绝大多数浏览器都只支持6个新窗口,如果你打开第7个,那么新的框口页面是不会加载的。
这其实是客户端浏览器的限制,这是以连接的域名为单位来限制, 如果是最新版本的IE似乎没有这个限制,但是其他浏览器似乎都会存在,可以查看 browserscope 查看具体情况。
如果你使用WebSockets的传输方式是不会有这个限制,如果有限制就证明你不是使用的WebSockets传输方式,但是WebSockets传输服务器需要一定的限制,关于限制你可以查看SignalR平台配置要求。
对于用户你永远都不会知道是否会打开多余6个的浏览器窗口,对于这种情况只有下面几个解决方法:
- 不管这个问题,当然这会带来一定几率的用户体验。
- 选择合适的传输方式,解决SignalR连接数的限制,比如使用WebSockets传输方法。
- 使用其他第三方商家的解决方案。
观察用户浏览器窗口的打开数目
- 限制连接数
- 监控激活的连接
通过使用多用域名来绕过这个问题,因为的6个连接的限制是针对每个域名。
我们来分析下解决方案
不管SignalR连接数限制
你需要思考的是谁会打开6个以上的浏览器框口?如果是一个聊天室应用或者单页面应用完全就可以忽略SignalR连接数限制。
选择合适的传输方式
只有使用WebSockets的传输方式才不会有连接数的限制,即时是在老的浏览器也不会造成浏览器崩溃的情况。
使用第三方专业方案解决SignalR连接数限制
使用一些第三方专业的解决即时通信的问题,比如可以使用 http://www.lightstreamer.com/。这个连接最大可以支持到2000万个
通过使用多个域名解决SignalR连接数限制
SignalR浏览器的连接限制只是针对一个域名,所以我们可以通过域名来解决:
- 使用另外的域名(你需要解决跨站请求伪造)。
使用二级域名(如果你的网站的是HTTPS请求,最好使用泛域名SSL证书)。
以上就是SignalR 站点浏览器连接数限制分析及解决方案,你需要针对你的实际情况选择合适的方法来解决。
来自https://www.zhidao91.com/signalr-connect-limit/
SignalR 行实时通信最大连接数的更多相关文章
- SignalR 行实时通信遇到的
SignalR可用于向ASP.NET应用程序添加任何类型的“实时”Web功能.虽然聊天经常被用作示例,但您可以做更多的事情.每当用户刷新网页以查看新数据,或者页面实现Ajax长轮询以检索新数据时,都可 ...
- 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序
原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...
- 一步一步学习SignalR进行实时通信_2_Persistent Connections
原文:一步一步学习SignalR进行实时通信_2_Persistent Connections 一步一步学习SignalR进行实时通信\_2_Persistent Connections Signal ...
- 一步一步学习SignalR进行实时通信_1_简单介绍
一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语 参考文献 ...
- 一步一步学习SignalR进行实时通信_8_案例2
原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建 ...
- 一步一步学习SignalR进行实时通信_7_非代理
原文:一步一步学习SignalR进行实时通信_7_非代理 一步一步学习SignalR进行实时通信\_7_非代理 SignalR 一步一步学习SignalR进行实时通信_7_非代理 前言 代理与非代理 ...
- 一步一步学习SignalR进行实时通信_5_Hub
原文:一步一步学习SignalR进行实时通信_5_Hub 一步一步学习SignalR进行实时通信\_5_Hub SignalR 一步一步学习SignalR进行实时通信_5_Hub 前言 Hub命名规则 ...
- 一步一步学习SignalR进行实时通信_6_案例
原文:一步一步学习SignalR进行实时通信_6_案例 一步一步学习SignalR进行实时通信\_6_案例1 一步一步学习SignalR进行实时通信_6_案例1 前言 类的定义 各块功能 后台 上线 ...
- 一步一步学习SignalR进行实时通信_4_Hub
原文:一步一步学习SignalR进行实时通信_4_Hub 一步一步学习SignalR进行实时通信\_4_Hub SignalR 一步一步学习SignalR进行实时通信_4_Hub 前言 创建Hub 配 ...
随机推荐
- Java继承2
1.为什么使用继承 从已有的类派生出新的类,称为继承. 在不同的类中也可能会有共同的特征和动作,可以把这些共同的特征和动作放在一个类中,让其它类共享. 因此可以定义一个通用类,然后将其扩展为其它多个特 ...
- YYY0.1YYY
XXX0.2XXXZZZ目前提供免费下载和自动更新功能,由于自己的时间有限,就我一个开发,后期持续更新在线听歌.mp4转mp3.高音质下载.全球dj网站免费下载功能!ZZZ
- Promise学习使用
Promise是承诺的意思,“承诺可以获取异步操作的消息”,是一种异步执行的方案,Promise有各种开源实现,在ES6中被统一规范,由浏览器直接支持. Promise 对象有三种状态:pending ...
- ionic3 应用内打开第三方地图导航 百度 高德
1.安装检测第三方APP是否存在的插件 cordova plugin add cordova-plugin-appavailability --save npm install --save @ion ...
- Number and String in JS
Number 整数 小数(浮点数) 小数参与运算 NaN 其他数据类型转换成数字 String 其他数据类型转换成字符串 Number.Boolean.String的相同点 Number 虽然 ...
- 【转】Android-Input 触摸设备
https://source.android.com/devices/input/touch-devices 触摸设备 Android 支持各种触摸屏和触摸板,包括基于触控笔的数字化板. 触摸屏是与显 ...
- Vim+Taglist+AutoComplPop之代码目录分栏信息和自动补全提示(Ubuntu环境)
一步: 首先在Ubuntu环境中安装ctags: sudo apt-get install ctags 第二部: 安装Taglist-------------Taglist是vim的一个 ...
- protel dxp 2004安装与破解
安装准备 压缩文件包内容: dxp2004汉化补丁 dxp2004元件库 Network License Setup网络版注册机 Protel DXP2004原程序 Protel2004_sp2_单机 ...
- v-echart 按需加载
import 'v-charts/lib/style.css';import VeBar from 'v-charts/lib/bar' // 条形图import VeRadar from 'v-ch ...
- jQuery-3.事件篇---事件绑定与解绑
on()的多事件绑定 之前学的鼠标事件,表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理.翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个&quo ...