@@ -89,13 +89,13 @@ export class $WebSocket {
8989 * @param data
9090 * @returns {boolean }
9191 */
92- send4Direct ( data ) : boolean {
92+ send4Direct ( data , binary ?: boolean ) : boolean {
9393 let self = this ;
9494 if ( this . getReadyState ( ) !== this . readyStateConstants . OPEN
9595 && this . getReadyState ( ) !== this . readyStateConstants . CONNECTING ) {
9696 this . connect ( ) ;
9797 }
98- self . sendQueue . push ( { message : data } ) ;
98+ self . sendQueue . push ( { message : data , binary : binary } ) ;
9999 if ( self . socket . readyState === self . readyStateConstants . OPEN ) {
100100 self . fireQueue ( ) ;
101101 return true ;
@@ -111,10 +111,10 @@ export class $WebSocket {
111111 * @param data
112112 * @returns {Promise<any> }
113113 */
114- send4Promise ( data ) : Promise < any > {
114+ send4Promise ( data , binary ?: boolean ) : Promise < any > {
115115 return new Promise (
116116 ( resolve , reject ) => {
117- if ( this . send4Direct ( data ) ) {
117+ if ( this . send4Direct ( data , binary ) ) {
118118 return resolve ( ) ;
119119 } else {
120120 return reject ( Error ( 'Socket connection has been closed' ) ) ;
@@ -130,9 +130,9 @@ export class $WebSocket {
130130 * @param data
131131 * @returns {Observable<any> }
132132 */
133- send4Observable ( data ) : Observable < any > {
133+ send4Observable ( data , binary ?: boolean ) : Observable < any > {
134134 return Observable . create ( ( observer ) => {
135- if ( this . send4Direct ( data ) ) {
135+ if ( this . send4Direct ( data , binary ) ) {
136136 return observer . complete ( ) ;
137137 } else {
138138 return observer . error ( 'Socket connection has been closed' ) ;
@@ -155,16 +155,17 @@ export class $WebSocket {
155155 * If no specify, Default SendMode is Observable mode
156156 * @param data
157157 * @param mode
158+ * @param binary
158159 * @returns {any }
159160 */
160- send ( data : any , mode ?: WebSocketSendMode ) : any {
161+ send ( data : any , mode ?: WebSocketSendMode , binary ?: boolean ) : any {
161162 switch ( typeof mode !== "undefined" ? mode : this . send4Mode ) {
162163 case WebSocketSendMode . Direct :
163- return this . send4Direct ( data ) ;
164+ return this . send4Direct ( data , binary ) ;
164165 case WebSocketSendMode . Promise :
165- return this . send4Promise ( data ) ;
166+ return this . send4Promise ( data , binary ) ;
166167 case WebSocketSendMode . Observable :
167- return this . send4Observable ( data ) ;
168+ return this . send4Observable ( data , binary ) ;
168169 default :
169170 throw Error ( "WebSocketSendMode Error." ) ;
170171 }
@@ -192,9 +193,13 @@ export class $WebSocket {
192193 let data = this . sendQueue . shift ( ) ;
193194
194195 // console.log("fireQueue: ", data);
195- this . socket . send (
196- $WebSocket . Helpers . isString ( data . message ) ? data . message : JSON . stringify ( data . message )
197- ) ;
196+ if ( data . binary ) {
197+ this . socket . send ( data . message ) ;
198+ } else {
199+ this . socket . send (
200+ $WebSocket . Helpers . isString ( data . message ) ? data . message : JSON . stringify ( data . message )
201+ ) ;
202+ }
198203 // data.deferred.resolve();
199204 }
200205 }
0 commit comments