如果服务器可能不可用,如何创建Node.js Unix套接字客户端

时间:2017-05-05 01:21:28

标签: node.js sockets unix

我无法让我的Node.js Unix套接字站起来。 Node.js代码生成一个充当服务器的C app。当我开始尝试从Node.js代码连接到服务器时,服务器可能还没有准备好,所以我收到错误。我甚至试图天真地抓住它,但它不起作用。这是代码的简化版本:

var net = require('net');

const URI_SOCK = '/opt/tmp/.socket';

try {
  const socket = net.connect(URI_SOCK, function() {
    //'connect' listener
    console.log('Connected to socket!');
    socket.write("42");
  });
} catch(err) {
  console.log("Caught you!");
}

以下是我尝试运行时会发生的事情:

 ✘ ⚡ ⚙ root@ncooprider-tron  ~  node test.js

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)

有关如何捕获该错误或该怎么做的任何想法我可以强制程序等到服务器准备好接收客户端?

1 个答案:

答案 0 :(得分:1)

之前已经回答了几次,但你基本上需要听#34;错误"客户端发出的事件。类似的东西:

socket.on('error', function(err) {
  console.log("Error: " + err);
});