2015-05-06 64 views
0

我的咖啡代码建立WebSocket连接时它不存在返回错误:的WebSocket建立防弹连接

socket = new WebSocket('ws://localhost:8080') 
#=> Firefox can't establish a connection to the server at ws://localhost:8080/. 
#=> socket = new WebSocket('ws://localhost:8080'); 

它的WebSocket的正常行为,但我想WebSockets的工作是这样的:

# pseudocode 
if websocket.establish_connection() 
    # do thing #1 
else 
    do thing no.2 

我想约try ... catch但我认为它很脏。有其他解决方法吗?

+0

有一些'readyState'财产,也许这有助于http://stackoverflow.com/questions/11809267/how-do-i -know-IF-连接是活与 - 的WebSockets –

回答

1

它实际上并没有抛出一个错误,程序继续执行。它只是将错误(异步)记录到控制台。要处理连接失败,您可以绑定到套接字onerror事件。

像这样的东西可以工作:

function establishWSConnection(url) { 
 
    return new Promise(function(res, rej) { 
 
     var ws = new WebSocket(url); 
 
     ws.onerror = rej; 
 
     ws.onopen = function() { 
 
      ws.onerror = null; 
 
      res(ws); 
 
     } 
 
    }); 
 
} 
 

 
establishWSConnection('ws://localhost:1234').then(function(ws) { 
 
    // do stuff 
 
}).catch(function(err){ 
 
    console.log(err); 
 
});

相关问题