@@ -29,6 +29,7 @@ export class Tracer {
2929
3030 private readonly remoteTracingUrl : string | undefined
3131 private readonly remoteWorkspaceDumpUrl : string | undefined
32+ private readonly maximumMessageSize : number
3233 private get isTracingEnabled ( ) : boolean {
3334 return Boolean ( this . remoteWorkspaceDumpUrl || this . remoteTracingUrl ) ;
3435 }
@@ -40,6 +41,8 @@ export class Tracer {
4041
4142 this . remoteWorkspaceDumpUrl = this . ctx . extensionConfig . get < string > ( 'remoteWorkspaceDumpUrl' ) ;
4243 this . remoteTracingUrl = this . ctx . extensionConfig . get < string > ( 'remoteTracingUrl' ) ;
44+ const maximumMessageSize = this . ctx . extensionConfig . get < number > ( 'tracing.maximumMessageSize' ) ;
45+ this . maximumMessageSize = maximumMessageSize === undefined || maximumMessageSize < 0 ? 0 : maximumMessageSize | 0 ;
4346
4447 this . machineId = ( ( ) => {
4548 const machineIdKey = 'tracing.machineId' ;
@@ -290,11 +293,17 @@ export class Tracer {
290293 log += '\n' ;
291294 if ( this . tracingConsent . get ( ) === 'yes' ) withSocket ( ( socket ) => {
292295 if ( socket . readyState === WebSocket . OPEN ) {
293- socket . send ( log , ( err ) => {
296+ const send = ( msg : string ) => socket . send ( msg , ( err ) => {
294297 if ( err ) {
295298 this . logError ( 'socket send error' , err )
296299 }
297300 } ) ;
301+
302+ let start = 0 ;
303+ while ( start < log . length ) {
304+ send ( log . substring ( start , start + this . maximumMessageSize ) ) ;
305+ start += this . maximumMessageSize ;
306+ }
298307 log = '' ;
299308 }
300309 } ) ;
0 commit comments