Maison  >  Questions et réponses  >  le corps du texte

javascript - ie11 websocket连接建立时报SecurityError问题

这段代码在chrome和firefox下是没有问题的,但是换成ie11之后,在for循环那块,前6个次都成功了,但是从第7次到第10次全都失败了,new WebSocket返回异常SecurityError

    function Socket(wsUrl){
        try {
            this._connect(wsUrl);
        } catch (e) {
            console.warn(e);
            try {
                this._connect(wsUrl);
            } catch (e) {
                console.error(e);
            }
        }
    }

    Socket.prototype = {
        _connect: function(wsUrl) {
            if("WebSocket" in window){
                this.io = new WebSocket(wsUrl);
            }else if("MozWebSocket" in window){
                this.io = new MozWebSocket(wsUrl);
            }
            if (this.io) {
                this.io.binaryType = "arraybuffer";// talking binary
                this._addEvent();
            }
        },
        _addEvent : function() {
            this.io.onopen = function() {
                console.log("WebSocket connection opened!");
            };
            this.io.onclose = function(){
                console.log("WebSocket closed!");
            };
            this.io.onerror = function(evt){
                console.log(evt.toLocaleString());
            };
        }
    };
    var lserver = 'websocket服务器域名';
    for(var i=0;i<10;i++) {
        setTimeout(function(){
            var socket = new Socket('ws://'+lserver+':8110/ws/conn');
        },i*1000);
    }
PHP中文网PHP中文网2748 Il y a quelques jours1011

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师2017-04-10 14:37:53

    IE10/11限制了到单个服务器最大并发websocket的数量,这个数字的缺省值是6,所以当你创建第7个websocket连接时就会报SecurityError。
    这个数字可以在注册表里改,具体信息在这里
    不过话说回来,什么应用需要同时建立这么多WebSocket连接泥?

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-10 14:37:53

    修改了注册表,重启后仍让不生效啊。

    répondre
    0
  • Annulerrépondre