@@ -29,6 +29,7 @@ export class Tracer {
29
29
30
30
private readonly remoteTracingUrl : string | undefined
31
31
private readonly remoteWorkspaceDumpUrl : string | undefined
32
+ private readonly maximumMessageSize : number
32
33
private get isTracingEnabled ( ) : boolean {
33
34
return Boolean ( this . remoteWorkspaceDumpUrl || this . remoteTracingUrl ) ;
34
35
}
@@ -40,6 +41,8 @@ export class Tracer {
40
41
41
42
this . remoteWorkspaceDumpUrl = this . ctx . extensionConfig . get < string > ( 'remoteWorkspaceDumpUrl' ) ;
42
43
this . remoteTracingUrl = this . ctx . extensionConfig . get < string > ( 'remoteTracingUrl' ) ;
44
+ const maximumMessageSize = this . ctx . extensionConfig . get < number > ( 'maximumMessageSize' ) ;
45
+ this . maximumMessageSize = maximumMessageSize === undefined ? 512 : maximumMessageSize ;
43
46
44
47
this . machineId = ( ( ) => {
45
48
const machineIdKey = 'tracing.machineId' ;
@@ -290,11 +293,18 @@ export class Tracer {
290
293
log += '\n' ;
291
294
if ( this . tracingConsent . get ( ) === 'yes' ) withSocket ( ( socket ) => {
292
295
if ( socket . readyState === WebSocket . OPEN ) {
293
- socket . send ( log , ( err ) => {
296
+ const maximumMessageSize /*: Int*/ = this . maximumMessageSize | 0 ;
297
+ const send = ( msg : string ) => socket . send ( msg , ( err ) => {
294
298
if ( err ) {
295
299
this . logError ( 'socket send error' , err )
296
300
}
297
301
} ) ;
302
+
303
+ let start = 0 ;
304
+ while ( start < log . length ) {
305
+ send ( log . substring ( start , start + maximumMessageSize ) ) ;
306
+ start += maximumMessageSize ;
307
+ }
298
308
log = '' ;
299
309
}
300
310
} ) ;
0 commit comments