Skip to content

Commit 1e31769

Browse files
serhiisoldarrachequesne
authored andcommitted
[fix] Fixes socket.use error packet (#2772)
* fix(socket): Fixes socket.use error packet which drops nodejs due to nuances of Nodejs' EventEmitter * fix(socket): Fixes missing error event on socket * fix(socket): test fix, should listen for clientSocket instead of server socket * minor update
1 parent 797c9a3 commit 1e31769

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

lib/socket.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ Socket.prototype.dispatch = function(event){
498498
this.run(event, function(err){
499499
process.nextTick(function(){
500500
if (err) {
501-
return self.emit('error', err.data || err.message);
501+
return self.error(err.data || err.message);
502502
}
503503
emit.apply(self, event);
504504
});

test/socket.io.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2273,9 +2273,14 @@ describe('socket.io', function(){
22732273
var sio = io(srv);
22742274

22752275
srv.listen(function(){
2276-
var socket = client(srv, { multiplex: false });
2276+
var clientSocket = client(srv, { multiplex: false });
22772277

2278-
socket.emit('join', 'woot');
2278+
clientSocket.emit('join', 'woot');
2279+
2280+
clientSocket.on('error', function(err){
2281+
expect(err).to.be('Authentication error');
2282+
done();
2283+
});
22792284

22802285
sio.on('connection', function(socket){
22812286
socket.use(function(event, next){
@@ -2288,10 +2293,6 @@ describe('socket.io', function(){
22882293
socket.on('join', function(){
22892294
done(new Error('nope'));
22902295
});
2291-
socket.on('error', function(err){
2292-
expect(err).to.be('Authentication error');
2293-
done();
2294-
});
22952296
});
22962297
});
22972298
});
@@ -2301,9 +2302,14 @@ describe('socket.io', function(){
23012302
var sio = io(srv);
23022303

23032304
srv.listen(function(){
2304-
var socket = client(srv, { multiplex: false });
2305+
var clientSocket = client(srv, { multiplex: false });
23052306

2306-
socket.emit('join', 'woot');
2307+
clientSocket.emit('join', 'woot');
2308+
2309+
clientSocket.on('error', function(err){
2310+
expect(err).to.eql({ a: 'b', c: 3 });
2311+
done();
2312+
});
23072313

23082314
sio.on('connection', function(socket){
23092315
socket.use(function(event, next){
@@ -2315,10 +2321,6 @@ describe('socket.io', function(){
23152321
socket.on('join', function(){
23162322
done(new Error('nope'));
23172323
});
2318-
socket.on('error', function(err){
2319-
expect(err).to.eql({ a: 'b', c: 3 });
2320-
done();
2321-
});
23222324
});
23232325
});
23242326
});

0 commit comments

Comments
 (0)