@@ -14,7 +14,10 @@ export interface SendOptions {
14
14
15
15
type ReadyState = "opening" | "open" | "closing" | "closed" ;
16
16
17
- type SendCallback = ( transport : Transport ) => void ;
17
+ type SendCallback = (
18
+ transport : Transport ,
19
+ packets : Packet [ ] | undefined
20
+ ) => void ;
18
21
19
22
export class Socket extends EventEmitter {
20
23
/**
@@ -80,7 +83,7 @@ export class Socket extends EventEmitter {
80
83
server : BaseServer ,
81
84
transport : Transport ,
82
85
req : EngineRequest ,
83
- protocol : number ,
86
+ protocol : number
84
87
) {
85
88
super ( ) ;
86
89
this . id = id ;
@@ -125,7 +128,7 @@ export class Socket extends EventEmitter {
125
128
pingInterval : this . server . opts . pingInterval ,
126
129
pingTimeout : this . server . opts . pingTimeout ,
127
130
maxPayload : this . server . opts . maxHttpBufferSize ,
128
- } ) ,
131
+ } )
129
132
) ;
130
133
131
134
if ( this . server . opts . initialPacket ) {
@@ -212,7 +215,7 @@ export class Socket extends EventEmitter {
212
215
this . pingIntervalTimer = setTimeout ( ( ) => {
213
216
debug (
214
217
"writing ping packet - expecting pong within %sms" ,
215
- this . server . opts . pingTimeout ,
218
+ this . server . opts . pingTimeout
216
219
) ;
217
220
this . sendPacket ( "ping" ) ;
218
221
this . resetPingTimeout ( ) ;
@@ -233,7 +236,7 @@ export class Socket extends EventEmitter {
233
236
} ,
234
237
this . protocol === 3
235
238
? this . server . opts . pingInterval + this . server . opts . pingTimeout
236
- : this . server . opts . pingTimeout ,
239
+ : this . server . opts . pingTimeout
237
240
) ;
238
241
}
239
242
@@ -271,13 +274,13 @@ export class Socket extends EventEmitter {
271
274
*
272
275
* @private
273
276
*/
274
- private onDrain ( ) {
277
+ private onDrain ( packets : Packet [ ] | undefined ) {
275
278
if ( this . sentCallbackFn . length > 0 ) {
276
279
debug ( "executing batch send callback" ) ;
277
280
const seqFn = this . sentCallbackFn . shift ( ) ;
278
281
if ( seqFn ) {
279
282
for ( let i = 0 ; i < seqFn . length ; i ++ ) {
280
- seqFn [ i ] ( this . transport ) ;
283
+ seqFn [ i ] ( this . transport , packets ) ;
281
284
}
282
285
}
283
286
}
@@ -293,7 +296,7 @@ export class Socket extends EventEmitter {
293
296
debug (
294
297
'might upgrade socket transport from "%s" to "%s"' ,
295
298
this . transport . name ,
296
- transport . name ,
299
+ transport . name
297
300
) ;
298
301
299
302
this . upgrading = true ;
@@ -468,7 +471,7 @@ export class Socket extends EventEmitter {
468
471
type : PacketType ,
469
472
data ?: RawData ,
470
473
options : SendOptions = { } ,
471
- callback ?: SendCallback ,
474
+ callback ?: SendCallback
472
475
) {
473
476
if ( "function" === typeof options ) {
474
477
callback = options ;
@@ -525,8 +528,8 @@ export class Socket extends EventEmitter {
525
528
}
526
529
527
530
this . transport . send ( wbuf ) ;
528
- this . emit ( "drain" ) ;
529
- this . server . emit ( "drain" , this ) ;
531
+ this . emit ( "drain" , wbuf ) ;
532
+ this . server . emit ( "drain" , this , wbuf ) ;
530
533
}
531
534
}
532
535
@@ -568,7 +571,7 @@ export class Socket extends EventEmitter {
568
571
if ( this . writeBuffer . length ) {
569
572
debug (
570
573
"there are %d remaining packets in the buffer, waiting for the 'drain' event" ,
571
- this . writeBuffer . length ,
574
+ this . writeBuffer . length
572
575
) ;
573
576
this . once ( "drain" , ( ) => {
574
577
debug ( "all packets have been sent, closing the transport" ) ;
0 commit comments