有了這段代碼,我故意創建一些錯誤,爲什麼nodejs/socket.io停止響應客戶端?請注意,nodejs進程仍在運行,沒有任何崩潰或退出。node.js(socket.io)在* catch *錯誤後停止與客戶端通信
socket.on('message', function (data) {
var d = domain.create();
d.on('error', function(err) {
socket.emit('error', err.message);
});
d.run(function() {
execError();
}
});
我可以重現它,它似乎是一個錯誤,但我還沒有看過,非常緊密地(還)。 – robertklep 2013-05-12 16:15:47
更新:我可以接收數據,但不能發送。 – 2013-05-13 12:41:19
更新3: 如果在d.run()socket.io的根目錄中存在錯誤,則停止響應,並在一段時間後重新連接。但是,如果錯誤發生在相同的d.run()內部,但在類似的範圍內:redclient.hget('hkey','key',d.bind(function(err,block){ERROR(); }); socket.io發現錯誤並保持響應,因爲什麼也沒有發生。 – 2013-05-16 11:55:06