如何使用Socket.IO发出服务器端错误并接收有关错误客户端的详细信息?

时间:2015-05-30 02:54:22

标签: node.js socket.io

使用socket.io,发出错误的规定方法是什么,以便将错误信息发送给客户端?

我有这个:

socket.on('connection', function(socket) { 
  if (someError) {
    emit('error', 'there is a error...');
  }
};

我知道有一种方法可以通过使用socket.io注册中间件来做我想要的事情,但是我不确定从中间件发送错误信息需要做什么给客户:

io.use(function(socket, next) {
  next(new Error('An error has occurred.'));
});

提前感谢任何建设性的指导。

1 个答案:

答案 0 :(得分:1)

您似乎在服务器端正确地发出错误,但您可能还会找到the following syntax/example of interest

socket.on('connection', function(socket) { 
    if (someError) {
        this.emit('error', new Error('there is an error..'));
    }
};

在客户端,您需要一个error处理程序,这是一个'错误'处理程序的示例:

socket.on('error', function (data) {
    console.log(data || 'connect error - no data');
});

在这种情况下,data应包含有关错误的详细信息。

您不需要为此行为注册中间件组件,此行为是开箱即用的。

<强>参考文献:

  1. Client API Manager Documentation, describing events and parameters.
  2. NodeWiz.biz article on Error Handling patterns in Node