File tree Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Expand file tree Collapse file tree 2 files changed +38
-0
lines changed Original file line number Diff line number Diff line change @@ -84,6 +84,7 @@ export class Socket extends Emitter {
84
84
this . subs = [
85
85
on ( io , "open" , this . onopen . bind ( this ) ) ,
86
86
on ( io , "packet" , this . onpacket . bind ( this ) ) ,
87
+ on ( io , "error" , this . onerror . bind ( this ) ) ,
87
88
on ( io , "close" , this . onclose . bind ( this ) ) ,
88
89
] ;
89
90
}
@@ -204,6 +205,18 @@ export class Socket extends Emitter {
204
205
}
205
206
}
206
207
208
+ /**
209
+ * Called upon engine or manager `error`.
210
+ *
211
+ * @param err
212
+ * @private
213
+ */
214
+ private onerror ( err : Error ) {
215
+ if ( ! this . connected ) {
216
+ super . emit ( "connect_error" , err ) ;
217
+ }
218
+ }
219
+
207
220
/**
208
221
* Called upon engine `close`.
209
222
*
Original file line number Diff line number Diff line change @@ -50,6 +50,31 @@ describe("socket", function () {
50
50
} , 300 ) ;
51
51
} ) ;
52
52
53
+ it ( "fire a connect_error event when the connection cannot be established" , ( done ) => {
54
+ const socket = io ( "http://localhost:9823" , {
55
+ forceNew : true ,
56
+ timeout : 100 ,
57
+ } ) ;
58
+ socket . on ( "connect_error" , ( ) => {
59
+ socket . close ( ) ;
60
+ done ( ) ;
61
+ } ) ;
62
+ } ) ;
63
+
64
+ it ( "doesn't fire a connect_error event when the connection is already established" , ( done ) => {
65
+ const socket = io ( { forceNew : true } ) ;
66
+ socket . on ( "connect" , ( ) => {
67
+ socket . io . engine . close ( true ) ;
68
+ } ) ;
69
+ socket . on ( "connect_error" , ( ) => {
70
+ done ( new Error ( "should not happen" ) ) ;
71
+ } ) ;
72
+ setTimeout ( ( ) => {
73
+ socket . close ( ) ;
74
+ done ( ) ;
75
+ } , 300 ) ;
76
+ } ) ;
77
+
53
78
it ( "should change socket.id upon reconnection" , ( done ) => {
54
79
const socket = io ( { forceNew : true } ) ;
55
80
socket . on ( "connect" , ( ) => {
You can’t perform that action at this time.
0 commit comments