@@ -14,7 +14,10 @@ export interface SendOptions {
1414
1515type ReadyState = "opening" | "open" | "closing" | "closed" ;
1616
17- type SendCallback = ( transport : Transport ) => void ;
17+ type SendCallback = (
18+ transport : Transport ,
19+ packets : Packet [ ] | undefined
20+ ) => void ;
1821
1922export class Socket extends EventEmitter {
2023 /**
@@ -80,7 +83,7 @@ export class Socket extends EventEmitter {
8083 server : BaseServer ,
8184 transport : Transport ,
8285 req : EngineRequest ,
83- protocol : number ,
86+ protocol : number
8487 ) {
8588 super ( ) ;
8689 this . id = id ;
@@ -125,7 +128,7 @@ export class Socket extends EventEmitter {
125128 pingInterval : this . server . opts . pingInterval ,
126129 pingTimeout : this . server . opts . pingTimeout ,
127130 maxPayload : this . server . opts . maxHttpBufferSize ,
128- } ) ,
131+ } )
129132 ) ;
130133
131134 if ( this . server . opts . initialPacket ) {
@@ -212,7 +215,7 @@ export class Socket extends EventEmitter {
212215 this . pingIntervalTimer = setTimeout ( ( ) => {
213216 debug (
214217 "writing ping packet - expecting pong within %sms" ,
215- this . server . opts . pingTimeout ,
218+ this . server . opts . pingTimeout
216219 ) ;
217220 this . sendPacket ( "ping" ) ;
218221 this . resetPingTimeout ( ) ;
@@ -233,7 +236,7 @@ export class Socket extends EventEmitter {
233236 } ,
234237 this . protocol === 3
235238 ? this . server . opts . pingInterval + this . server . opts . pingTimeout
236- : this . server . opts . pingTimeout ,
239+ : this . server . opts . pingTimeout
237240 ) ;
238241 }
239242
@@ -271,13 +274,13 @@ export class Socket extends EventEmitter {
271274 *
272275 * @private
273276 */
274- private onDrain ( ) {
277+ private onDrain ( packets : Packet [ ] | undefined ) {
275278 if ( this . sentCallbackFn . length > 0 ) {
276279 debug ( "executing batch send callback" ) ;
277280 const seqFn = this . sentCallbackFn . shift ( ) ;
278281 if ( seqFn ) {
279282 for ( let i = 0 ; i < seqFn . length ; i ++ ) {
280- seqFn [ i ] ( this . transport ) ;
283+ seqFn [ i ] ( this . transport , packets ) ;
281284 }
282285 }
283286 }
@@ -293,7 +296,7 @@ export class Socket extends EventEmitter {
293296 debug (
294297 'might upgrade socket transport from "%s" to "%s"' ,
295298 this . transport . name ,
296- transport . name ,
299+ transport . name
297300 ) ;
298301
299302 this . upgrading = true ;
@@ -468,7 +471,7 @@ export class Socket extends EventEmitter {
468471 type : PacketType ,
469472 data ?: RawData ,
470473 options : SendOptions = { } ,
471- callback ?: SendCallback ,
474+ callback ?: SendCallback
472475 ) {
473476 if ( "function" === typeof options ) {
474477 callback = options ;
@@ -525,8 +528,8 @@ export class Socket extends EventEmitter {
525528 }
526529
527530 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 ) ;
530533 }
531534 }
532535
@@ -568,7 +571,7 @@ export class Socket extends EventEmitter {
568571 if ( this . writeBuffer . length ) {
569572 debug (
570573 "there are %d remaining packets in the buffer, waiting for the 'drain' event" ,
571- this . writeBuffer . length ,
574+ this . writeBuffer . length
572575 ) ;
573576 this . once ( "drain" , ( ) => {
574577 debug ( "all packets have been sent, closing the transport" ) ;
0 commit comments