2015-05-30 73 views
0

使用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.')); 
}); 

在此先感謝您提供任何建設性指導。

+0

是的,我們會需要比這更多的信息。你想在客戶端拋出一個錯誤並將其發送到服務器?反之亦然?備份一個關卡並告訴我們你的更高層次的目標是什麼。 – Chev

+0

如果存在連接錯誤,則自動觸發事件「錯誤」。 http://socket.io/docs/client-api/#socket – laggingreflex

回答

2

你似乎是在服務器端正確地發出錯誤,但你也可能發現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
相關問題