add special error handling for a few special serverside errors

pull/1/head
ansuz 5 years ago
parent 8bee95d13d
commit 8a5d012edf

@ -9,6 +9,16 @@ module.exports.create = function (config) {
var log = config.log; var log = config.log;
var noop = function () {};
var special_errors = {};
['EPIPE', 'ECONNRESET'].forEach(function (k) { special_errors[k] = noop; });
special_errors.NF_ENOENT = function (error, label, info) {
log.error(label, {
info: info,
});
};
// spawn ws server and attach netflux event handlers // spawn ws server and attach netflux event handlers
NetfluxSrv.create(new WebSocketServer({ server: config.httpServer})) NetfluxSrv.create(new WebSocketServer({ server: config.httpServer}))
.on('channelClose', historyKeeper.channelClose) .on('channelClose', historyKeeper.channelClose)
@ -17,11 +27,17 @@ module.exports.create = function (config) {
.on('sessionClose', historyKeeper.sessionClose) .on('sessionClose', historyKeeper.sessionClose)
.on('error', function (error, label, info) { .on('error', function (error, label, info) {
if (!error) { return; } if (!error) { return; }
if (['EPIPE', 'ECONNRESET'].indexOf(error && error.code) !== -1) { return; } if (error && error.code) {
/* EPIPE,ECONNERESET, NF_ENOENT */
if (typeof(special_errors[error.code]) === 'function') {
return void special_errors[error.code](error, label, info);
}
}
/* labels: /* labels:
SEND_MESSAGE_FAIL, SEND_MESSAGE_FAIL_2, FAIL_TO_DISCONNECT, SEND_MESSAGE_FAIL, SEND_MESSAGE_FAIL_2, FAIL_TO_DISCONNECT,
FAIL_TO_TERMINATE, HANDLE_CHANNEL_LEAVE, NETFLUX_BAD_MESSAGE, FAIL_TO_TERMINATE, HANDLE_CHANNEL_LEAVE, NETFLUX_BAD_MESSAGE,
NETFLUX_WEBSOCKET_ERROR, NF_ENOENT NETFLUX_WEBSOCKET_ERROR
*/ */
log.error(label, { log.error(label, {
code: error.code, code: error.code,

Loading…
Cancel
Save