File tree Expand file tree Collapse file tree 1 file changed +17
-5
lines changed
packages/nativescript-websockets Expand file tree Collapse file tree 1 file changed +17
-5
lines changed Original file line number Diff line number Diff line change 11import { HeaderType } from './common' ;
22import { NativeBridgeDefinition } from './websocket.definition' ;
33
4+ interface ExtendedArrayBuffer extends ArrayBuffer {
5+ from ?( nativeBuffer : java . nio . ByteBuffer ) : ArrayBuffer ;
6+ }
7+
8+ const fastConversionAvailable = ! ! ( ArrayBuffer as unknown as ExtendedArrayBuffer ) . from ;
9+
410@NativeClass ( )
511class WebSocketListenerImpl extends okhttp3 . WebSocketListener {
612 private owner : WeakRef < NativeBridge > ;
@@ -125,12 +131,18 @@ export class NativeBridge extends NativeBridgeDefinition {
125131 return ;
126132 }
127133 if ( data instanceof okio . ByteString ) {
128- // const arrayBuffer = new ArrayBuffer(data.size());
129- const bufferView = new Uint8Array ( data . size ( ) ) ;
130- for ( let i = 0 ; i < data . size ( ) ; i ++ ) {
131- bufferView [ i ] = data . getByte ( i ) ;
134+ let arrayBuffer : ArrayBuffer ;
135+ if ( fastConversionAvailable ) {
136+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
137+ arrayBuffer = ( ArrayBuffer as unknown as ExtendedArrayBuffer ) . from ! ( data . asByteBuffer ( ) ) ;
138+ } else {
139+ const bufferView = new Uint8Array ( data . size ( ) ) ;
140+ for ( let i = 0 ; i < data . size ( ) ; i ++ ) {
141+ bufferView [ i ] = data . getByte ( i ) ;
142+ }
143+ arrayBuffer = bufferView . buffer ;
132144 }
133- const arrayBuffer = bufferView . buffer ;
145+
134146 this . ws . _websocketMessage ( arrayBuffer ) ;
135147 return ;
136148 }
You can’t perform that action at this time.
0 commit comments