@@ -386,13 +386,16 @@ async function generateHarHttpEntry(
386386 ...( exchange . isWebSocket ( ) ? {
387387 _resourceType : 'websocket' ,
388388 _webSocketMessages : exchange . messages . map ( ( message ) =>
389- generateHarWebSocketMessage ( startTime , message )
389+ generateHarWebSocketMessage ( message , timingEvents )
390390 )
391391 } : { } )
392392 } ;
393393}
394394
395- function generateHarWebSocketMessage ( startTime : number , message : StreamMessage ) {
395+ function generateHarWebSocketMessage (
396+ message : StreamMessage ,
397+ timingEvents : Partial < TimingEvents >
398+ ) : HarWebSocketMessage {
396399 return {
397400 // Note that msg.direction is from the perspective of Mockttp, not the client.
398401 type : message . direction === 'sent'
@@ -406,9 +409,9 @@ function generateHarWebSocketMessage(startTime: number, message: StreamMessage)
406409 ? message . content . toString ( 'base64' )
407410 : message . content . toString ( 'utf8' ) ,
408411
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
412415 } ;
413416}
414417
0 commit comments