@@ -8,6 +8,10 @@ import { Packet, PacketType, RawData } from "engine.io-parser";
88
99const debug = debugModule ( "engine:socket" ) ;
1010
11+ export interface SendOptions {
12+ compress ?:boolean ;
13+ }
14+
1115export class Socket extends EventEmitter {
1216public readonly protocol :number ;
1317// TODO for the next major release: do not keep the reference to the first HTTP request, as it stays in memory
@@ -432,11 +436,7 @@ export class Socket extends EventEmitter {
432436 *@return {Socket } for chaining
433437 *@api public
434438 */
435- public send (
436- data :RawData ,
437- options ?:{ compress :boolean } ,
438- callback ?:( ) => void
439- ) {
439+ public send ( data :RawData , options ?:SendOptions , callback ?:( ) => void ) {
440440this . sendPacket ( "message" , data , options , callback ) ;
441441return this ;
442442}
@@ -448,11 +448,7 @@ export class Socket extends EventEmitter {
448448 *@param options
449449 *@param callback
450450 */
451- public write (
452- data :RawData ,
453- options ?:{ compress :boolean } ,
454- callback ?:( ) => void
455- ) {
451+ public write ( data :RawData , options ?:SendOptions , callback ?:( ) => void ) {
456452this . sendPacket ( "message" , data , options , callback ) ;
457453return this ;
458454}
@@ -470,20 +466,23 @@ export class Socket extends EventEmitter {
470466private sendPacket (
471467type :PacketType ,
472468data ?:RawData ,
473- options :{ compress : boolean } = { compress : true } ,
469+ options :SendOptions = { } ,
474470callback ?:( ) => void
475471) {
476472if ( "function" === typeof options ) {
477473callback = options ;
478- options = null ;
474+ options = { } ;
479475}
480476
481477if ( "closing" !== this . readyState && "closed" !== this . readyState ) {
482478debug ( 'sending packet "%s" (%s)' , type , data ) ;
483479
480+ // compression is enabled by default
481+ options . compress = options . compress !== false ;
482+
484483const packet :Packet = {
485484 type,
486- options,
485+ options : options as { compress : boolean } ,
487486} ;
488487
489488if ( data ) packet . data = data ;