2013-02-26 7 views
2

Я получаю эту ошибку:Прием "InvalidStateError: DOM Exception 11" во время websocket.send

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 для сервера. Что означает эта ошибка?

ответ

0

Здесь есть бесконечная рекурсивная функция:

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

Это не проблема. Я изменил отправить на _send, но он все еще не работает = ( – 2013-02-26 12:24:43

+0

Это дает мне ту же ошибку – 2013-02-26 12:25:01

+0

Только текущее решение, которое я нашел, проходит вокруг этого (контекста) метода .onopen evenlistener. – 2013-02-26 12:52:25

2

Из моего опыта, эта ошибка обычно означает, что сервер занят/или что существующие соединения WebSocket блокируют, и не позволяя новые соединений WebSocket. Я не знаком с Jetty, но я получаю ту же ошибку с сервером, состоящим из uWSGI + gevent - который позволяет не более одного подключения к сети в любой момент времени - когда второй браузер пытается подключиться до закрытия существующего соединения , он получает именно эту ошибку.

Смежные вопросы