@@ -3,7 +3,7 @@ import { installTimerFunctions } from "./util.js";
3
3
import parseqs from "parseqs" ;
4
4
import parseuri from "parseuri" ;
5
5
import debugModule from "debug" ; // debug()
6
- import Emitter from "@socket.io/component-emitter" ;
6
+ import { Emitter } from "@socket.io/component-emitter" ;
7
7
import { protocol } from "engine.io-parser" ;
8
8
9
9
const debug = debugModule ( "engine.io-client:socket" ) ; // debug()
@@ -214,7 +214,26 @@ export interface SocketOptions {
214
214
protocols : string | string [ ] ;
215
215
}
216
216
217
- export class Socket extends Emitter {
217
+ interface SocketReservedEvents {
218
+ open : ( ) => void ;
219
+ handshake : ( data ) => void ;
220
+ packet : ( packet ) => void ;
221
+ packetCreate : ( packet ) => void ;
222
+ data : ( data ) => void ;
223
+ message : ( data ) => void ;
224
+ drain : ( ) => void ;
225
+ flush : ( ) => void ;
226
+ heartbeat : ( ) => void ;
227
+ ping : ( ) => void ;
228
+ pong : ( ) => void ;
229
+ error : ( err : string | Error ) => void ;
230
+ upgrading : ( transport ) => void ;
231
+ upgrade : ( transport ) => void ;
232
+ upgradeError : ( err : Error ) => void ;
233
+ close : ( reason : string , desc ?: Error ) => void ;
234
+ }
235
+
236
+ export class Socket extends Emitter < { } , { } , SocketReservedEvents > {
218
237
public id : string ;
219
238
public transport : any ;
220
239
public binaryType : string ;
@@ -408,7 +427,7 @@ export class Socket extends Emitter {
408
427
} else if ( 0 === this . transports . length ) {
409
428
// Emit error on next tick so it can be listened to
410
429
this . setTimeoutFn ( ( ) => {
411
- this . emit ( "error" , "No transports available" ) ;
430
+ this . emitReserved ( "error" , "No transports available" ) ;
412
431
} , 0 ) ;
413
432
return ;
414
433
} else {
@@ -479,7 +498,7 @@ export class Socket extends Emitter {
479
498
if ( "pong" === msg . type && "probe" === msg . data ) {
480
499
debug ( 'probe transport "%s" pong' , name ) ;
481
500
this . upgrading = true ;
482
- this . emit ( "upgrading" , transport ) ;
501
+ this . emitReserved ( "upgrading" , transport ) ;
483
502
if ( ! transport ) return ;
484
503
Socket . priorWebsocketSuccess = "websocket" === transport . name ;
485
504
@@ -493,7 +512,7 @@ export class Socket extends Emitter {
493
512
494
513
this . setTransport ( transport ) ;
495
514
transport . send ( [ { type : "upgrade" } ] ) ;
496
- this . emit ( "upgrade" , transport ) ;
515
+ this . emitReserved ( "upgrade" , transport ) ;
497
516
transport = null ;
498
517
this . upgrading = false ;
499
518
this . flush ( ) ;
@@ -503,7 +522,7 @@ export class Socket extends Emitter {
503
522
const err = new Error ( "probe error" ) ;
504
523
// @ts -ignore
505
524
err . transport = transport . name ;
506
- this . emit ( "upgradeError" , err ) ;
525
+ this . emitReserved ( "upgradeError" , err ) ;
507
526
}
508
527
} ) ;
509
528
} ;
@@ -530,7 +549,7 @@ export class Socket extends Emitter {
530
549
531
550
debug ( 'probe transport "%s" failed because of error: %s' , name , err ) ;
532
551
533
- this . emit ( "upgradeError" , error ) ;
552
+ this . emitReserved ( "upgradeError" , error ) ;
534
553
} ;
535
554
536
555
function onTransportClose ( ) {
@@ -578,7 +597,7 @@ export class Socket extends Emitter {
578
597
debug ( "socket open" ) ;
579
598
this . readyState = "open" ;
580
599
Socket . priorWebsocketSuccess = "websocket" === this . transport . name ;
581
- this . emit ( "open" ) ;
600
+ this . emitReserved ( "open" ) ;
582
601
this . flush ( ) ;
583
602
584
603
// we check for `readyState` in case an `open`
@@ -610,10 +629,10 @@ export class Socket extends Emitter {
610
629
) {
611
630
debug ( 'socket receive: type "%s", data "%s"' , packet . type , packet . data ) ;
612
631
613
- this . emit ( "packet" , packet ) ;
632
+ this . emitReserved ( "packet" , packet ) ;
614
633
615
634
// Socket is live - any packet counts
616
- this . emit ( "heartbeat" ) ;
635
+ this . emitReserved ( "heartbeat" ) ;
617
636
618
637
switch ( packet . type ) {
619
638
case "open" :
@@ -623,8 +642,8 @@ export class Socket extends Emitter {
623
642
case "ping" :
624
643
this . resetPingTimeout ( ) ;
625
644
this . sendPacket ( "pong" ) ;
626
- this . emit ( "ping" ) ;
627
- this . emit ( "pong" ) ;
645
+ this . emitReserved ( "ping" ) ;
646
+ this . emitReserved ( "pong" ) ;
628
647
break ;
629
648
630
649
case "error" :
@@ -635,8 +654,8 @@ export class Socket extends Emitter {
635
654
break ;
636
655
637
656
case "message" :
638
- this . emit ( "data" , packet . data ) ;
639
- this . emit ( "message" , packet . data ) ;
657
+ this . emitReserved ( "data" , packet . data ) ;
658
+ this . emitReserved ( "message" , packet . data ) ;
640
659
break ;
641
660
}
642
661
} else {
@@ -651,7 +670,7 @@ export class Socket extends Emitter {
651
670
* @api private
652
671
*/
653
672
private onHandshake ( data ) {
654
- this . emit ( "handshake" , data ) ;
673
+ this . emitReserved ( "handshake" , data ) ;
655
674
this . id = data . sid ;
656
675
this . transport . query . sid = data . sid ;
657
676
this . upgrades = this . filterUpgrades ( data . upgrades ) ;
@@ -692,7 +711,7 @@ export class Socket extends Emitter {
692
711
this . prevBufferLen = 0 ;
693
712
694
713
if ( 0 === this . writeBuffer . length ) {
695
- this . emit ( "drain" ) ;
714
+ this . emitReserved ( "drain" ) ;
696
715
} else {
697
716
this . flush ( ) ;
698
717
}
@@ -715,7 +734,7 @@ export class Socket extends Emitter {
715
734
// keep track of current length of writeBuffer
716
735
// splice writeBuffer and callbackBuffer on `drain`
717
736
this . prevBufferLen = this . writeBuffer . length ;
718
- this . emit ( "flush" ) ;
737
+ this . emitReserved ( "flush" ) ;
719
738
}
720
739
}
721
740
@@ -770,7 +789,7 @@ export class Socket extends Emitter {
770
789
data : data ,
771
790
options : options
772
791
} ;
773
- this . emit ( "packetCreate" , packet ) ;
792
+ this . emitReserved ( "packetCreate" , packet ) ;
774
793
this . writeBuffer . push ( packet ) ;
775
794
if ( fn ) this . once ( "flush" , fn ) ;
776
795
this . flush ( ) ;
@@ -829,7 +848,7 @@ export class Socket extends Emitter {
829
848
private onError ( err ) {
830
849
debug ( "socket error %j" , err ) ;
831
850
Socket . priorWebsocketSuccess = false ;
832
- this . emit ( "error" , err ) ;
851
+ this . emitReserved ( "error" , err ) ;
833
852
this . onClose ( "transport error" , err ) ;
834
853
}
835
854
@@ -869,7 +888,7 @@ export class Socket extends Emitter {
869
888
this . id = null ;
870
889
871
890
// emit close event
872
- this . emit ( "close" , reason , desc ) ;
891
+ this . emitReserved ( "close" , reason , desc ) ;
873
892
874
893
// clean buffers after, so users can still
875
894
// grab the buffers on `close` event
0 commit comments