Guacamole关于客户端只能打开5个的bug
在测试自己开发的guacamole客户端的时候发现,当打开的客户端数量为5个后,打开第六个客户端时,所有的客户端都会失去响应,等待一段时间后,后端与前端都报了timeout错误,使用chrome和火狐浏览器都会发生这种情况。但如果使用ie或者edge就不会有上述限制。这个问题让我郁闷了很久,头一次见chrome火狐不如ie的。后来感觉这个表现和线程池中线程不够的表现一样,就是线程太少了来不及响应所以报了timeout,于是朝着这个方向去搜索,发现了浏览器对同域名是有最大并发连接数限制的,因为测试的时候访问的都是同一个ip+端口的形式,正好符合了这个限制。在火狐中可以通过在地址栏输入about:config然后搜索修改network.http.max-persistent-connections-per-server参数的值来改变最大并发连接数限制。
更新:
官方提供的guacamole样例使用的是XMLHTTPRequest,将其改为使用WebSocket就不再会有问题