我为iOS编写应用程序,它使用Socket.IO。有时我的服务器JS脚本会出现这个错误:
events.js:85
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19)
我所知道的是:
所以,我认为问题出现在socket.io的服务器库中,但只有在iOS客户端连接时才会触发异常。
如何处理此异常?
更新
在我的node.js-server上的OAuth模块中存在问题,该模块试图检查应用令牌但是超时到vk.com 我在node.js服务器上编辑了vkapi模块,添加" on" " https.get"功能: 是:
https.get(options, function(res) {
var apiResponse = new String();
res.setEncoding('utf8');
res.on('data', function(chunk) {
apiResponse += chunk;
});
res.on('end', function() {
var o = JSON.parse(apiResponse);
if (o.error) { self.emit('appServerTokenNotReady', o);
} else {
self.token = o.access_token;
self.emit('appServerTokenReady');
}
});
});
现在:
https.get(options, function(res) {
var apiResponse = new String();
res.setEncoding('utf8');
res.on('data', function(chunk) {
apiResponse += chunk;
});
res.on('end', function() {
var o = JSON.parse(apiResponse);
if (o.error) { self.emit('appServerTokenNotReady', o);
} else {
self.token = o.access_token;
self.emit('appServerTokenReady');
}
});
}).on('error', function(e) {
console.log('HTTPS error');
});
答案 0 :(得分:0)
通常,您可以通过在任何(例如请求,连接等)对象上侦听error
事件来处理这些类型的异步错误。
error
事件的特殊之处在于,如果在发出事件时当前没有事件处理程序,则会抛出错误。