如何在websockets中处理无效的URL / IP?

时间:2015-03-27 13:20:49

标签: javascript html5 websocket

我正在使用HTML / Javascript网络套接字与python服务器程序进行通信。现在我可以选择通过干净的UI更改服务器的IP,并且我有一个处理连接错误的.onerror函数,但是这不会处理初始错误。我的意思是,如果我要输入一个完全无效的地址,它甚至不会尝试连接它(这很好)并且吐出并且错误如:[Error] WebSocket network error: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)。我怎么能处理这个错误,所以我可以说,例如弹出一条消息?

以下是我的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 个答案:

答案 0 :(得分:1)

您可以将new WebSocket包装在try / catch:

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