@@ -386,13 +386,16 @@ async function generateHarHttpEntry(
386
386
...( exchange . isWebSocket ( ) ? {
387
387
_resourceType : 'websocket' ,
388
388
_webSocketMessages : exchange . messages . map ( ( message ) =>
389
- generateHarWebSocketMessage ( startTime , message )
389
+ generateHarWebSocketMessage ( message , timingEvents )
390
390
)
391
391
} : { } )
392
392
} ;
393
393
}
394
394
395
- function generateHarWebSocketMessage ( startTime : number , message : StreamMessage ) {
395
+ function generateHarWebSocketMessage (
396
+ message : StreamMessage ,
397
+ timingEvents : Partial < TimingEvents >
398
+ ) : HarWebSocketMessage {
396
399
return {
397
400
// Note that msg.direction is from the perspective of Mockttp, not the client.
398
401
type : message . direction === 'sent'
@@ -406,9 +409,9 @@ function generateHarWebSocketMessage(startTime: number, message: StreamMessage)
406
409
? message . content . toString ( 'base64' )
407
410
: message . content . toString ( 'utf8' ) ,
408
411
409
- // We don't record the start time for now, so just simulate with this. We
410
- // have to set a value here or Chrome drops the messages .
411
- time : ( startTime / 1000 ) + message . messageIndex // Float, in seconds
412
+ // N.b. timestamp is precise but relative, startTime is epoch-based but imprecise,
413
+ // eventual result here has to be in seconds as a float .
414
+ time : ( timingEvents . startTime ! + ( message . timestamp - timingEvents . startTimestamp ! ) ) / 1000
412
415
} ;
413
416
}
414
417
0 commit comments