在websocket.send期间接收“InvalidStateError:DOM Exception 11”

时间:2013-02-26 11:50:40

标签: java javascript websocket jetty

我收到此错误:

DOM Invalidate exception 11 

从以下代码中我找不到原因。

/*This is little bit pseudo stylish coded so might have some 
syntax errors */

    var socket;
    var client = {
        connect: function(){
            socket = new WebSocket(mylocation);
            socket.onopen = this.open;
            socket.send = this.send;
        },
        open: function(){
            this.send("Sent from socket open function");   //works
            socket.send("Sent from socket open function");  //works
        },
        _send: function(){
            socket.send("Sent from send function");     //error
            this.send("Sent from send function");       //error
        }
    }

    client.connect();
    client._send();

    ----- ERROR DESCRIPTION --------
    //DOMException {message: "InvalidStateError: DOM Exception 11", 
    //name: "InvalidStateError", code: 11

我目前正在使用Java Jetty Websocket作为服务器。这个错误意味着什么?

2 个答案:

答案 0 :(得分:2)

根据我的经验,此错误通常意味着服务器正忙/或现有的websocket连接阻塞,并且不允许新的websocket连接。我不熟悉Jetty,但我得到了一个由uWSGI + gevent组成的服务器的错误 - 在任何给定时间允许最多一个websocket连接 - 当第二个浏览器在现有连接关闭之前尝试连接时,它恰恰是这个错误。

答案 1 :(得分:0)

这里有无限的递归函数:

send: function(){
    socket.send("Sent from send function");     //error
    this.send("Sent from send function");       //error <--
}