【发布时间】:2013-05-06 14:03:01
【问题描述】:
使用这段代码我故意创建了一些错误,为什么 nodejs/socket.io 停止响应客户端?请注意,nodejs 进程仍然启动,没有任何崩溃或退出。
socket.on('message', function (data) {
var d = domain.create();
d.on('error', function(err) {
socket.emit('error', err.message);
});
d.run(function() {
execError();
}
});
【问题讨论】:
-
我可以重现它,这似乎是一个错误,但我还没有仔细研究它(还)。
-
更新:我可以接收数据,但不能发送。
-
更新 3:如果 d.run() 的根目录中存在错误,socket.io 停止响应并在一段时间后重新连接。但是,如果错误发生在同一个 d.run() 内但在类似的范围内: redclient.hget('hkey','key', d.bind(function (err, block) { ERROR(); } ); socket.io 发现了错误并保持响应,因为没有发生任何事情。
-
我认为这是非常奇怪和非常出乎意料的行为。也许您应该在github.com/learnboost/socket.io/issues 上发布错误报告
标签: node.js error-handling socket.io