2015-03-27 2 views
1

Я использую веб-сокеты HTML/Javascript для связи с программой сервера python. Теперь у меня есть возможность изменить IP-адрес сервера с помощью чистого пользовательского интерфейса, и у меня есть функция .onerror, которая обрабатывает ошибки подключения, однако это не обрабатывает начальные ошибки. Я имею в виду, что если я должен ввести совершенно недействительный адрес, он даже не попытается соединиться с ним (это нормально) и выплюнуть, и ошибка вроде: [Error] WebSocket network error: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.). Как я могу обработать эту ошибку, чтобы я мог сказать, например, всплывающее сообщение?Как обрабатывать недействительные URL/IP-адреса в websockets?

Вот краткий обзор моего сценария JS.

function updateDevice(id, ipUI){ 
    if ("WebSocket" in window){ 
     var ws = new WebSocket(serverIP); 

// Here is where I need to handle the bad address right? 

     ws.onopen = function(){ 
      ws.send(id); 
     }; 

     ws.onmessage = function (evt){ 
      var received_msg = evt.data; 
     }; 

// This function ws.onerror doesnt handle bad addresses. 

     ws.onerror = function(){ 
      document.getElementById("error_msg").style.display='block'; 
     }; 
    }else{ 
     alert("This site doesnt support your browser..."); 
    }; 
}; 

ответ

1

Вы можете обернуть new WebSocket в Try/уловом:

try { 
    new WebSocket(serverIP); 
} catch (e) { 
    if (e instanceof DOMException) { 
     alert('Invalid address!'); 
    } else { 
     throw e; 
    } 
} 
+0

Хм, что, кажется, не работает ...:/ – Jam3sn

+0

Какой браузер вы используете? Просто протестирован в Chrome, FF и IE. –

+0

Хм, хорошо, это сафари ... -_- – Jam3sn

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