mirror of
https://github.com/socketio/socket.io.git
synced 2026-04-30 03:00:39 -04:00
Moved error handling to onConnect to avoid messing with the http.Server global error handlers
Do special error handling for websocket
This commit is contained in:
@@ -57,6 +57,18 @@ Client.prototype._onConnect = function(req, res){
|
||||
this.request = req;
|
||||
this.response = res;
|
||||
this.connection = this.request.connection;
|
||||
|
||||
// error handling
|
||||
req.addListener('error',function(err){
|
||||
req.end && req.end() || req.destroy && req.destroy();
|
||||
});
|
||||
res.addListener('error', function(err){
|
||||
res.end && res.end() || res.destroy && res.destroy();
|
||||
});
|
||||
req.connection.addListener('error', function(err){
|
||||
req.socket && ( req.socket.end && req.socket.end() || req.socket.destroy && req.socket.destroy() );
|
||||
});
|
||||
|
||||
if (this._disconnectTimeout) clearTimeout(this._disconnectTimeout);
|
||||
};
|
||||
|
||||
|
||||
@@ -45,18 +45,6 @@ Listener = module.exports = function(server, options){
|
||||
this.server.removeAllListeners('request');
|
||||
|
||||
this.server.addListener('request', function(req, res){
|
||||
req.addListener("error",function(err){
|
||||
console.log("Socket.io::request req error: " + JSON.stringify(err));
|
||||
req.end && req.end() || req.destroy && req.destroy();
|
||||
});
|
||||
res.addListener("error",function(err){
|
||||
console.log("Socket.io::request res error: " + JSON.stringify(err));
|
||||
res.end && res.end() || res.destroy && res.destroy();
|
||||
});
|
||||
req.socket.addListener("error",function(err){
|
||||
console.log("Socket.io::request req.socket error: " + JSON.stringify(err));
|
||||
req.socket && ( req.socket.end && req.socket.end() || req.socket.destroy && req.socket.destroy() );
|
||||
});
|
||||
if (self.check(req, res)) return;
|
||||
for (var i = 0, len = listeners.length; i < len; i++){
|
||||
listeners[i].call(this, req, res);
|
||||
@@ -82,10 +70,6 @@ Listener = module.exports = function(server, options){
|
||||
}
|
||||
});
|
||||
|
||||
this.server.addListener('error', function(err){
|
||||
console.log("Socket.io::server global error: " + JSON.stringify(err));
|
||||
});
|
||||
|
||||
for (var i in transports){
|
||||
if ('init' in transports[i]) transports[i].init(this);
|
||||
}
|
||||
|
||||
@@ -78,8 +78,11 @@ WebSocket.prototype._onConnect = function(req, socket){
|
||||
self._handle(data);
|
||||
});
|
||||
|
||||
this.connection.addListener('error', function(data){
|
||||
self._onClose();
|
||||
req.addListener('error', function(err){
|
||||
req.end && req.end() || req.destroy && req.destroy();
|
||||
});
|
||||
socket.addListener('error', function(data){
|
||||
socket && (socket.end && socket.end() || socket.destroy && socket.destroy());
|
||||
});
|
||||
|
||||
if (this._proveReception(headers)) this._payload();
|
||||
|
||||
Reference in New Issue
Block a user