Send monotonic send time in web messages
The monotonic send time seems particularly helpful to have on the
webpage. At some point, we may just want to wrap everything in a logfile
MessageHeader before sending it over, but that seemed unnecessary for
the time being.
Change-Id: I1811771a56d6375eb69d8cae81ab07020ac6001b
diff --git a/aos/network/www/proxy.ts b/aos/network/www/proxy.ts
index 7491ad5..4ba7e39 100644
--- a/aos/network/www/proxy.ts
+++ b/aos/network/www/proxy.ts
@@ -9,7 +9,8 @@
private dataBuffer: Uint8Array|null = null;
private receivedMessageLength: number = 0;
constructor(
- private readonly handlerFunc: (data: Uint8Array) => void,
+ private readonly handlerFunc:
+ (data: Uint8Array, sentTime: number) => void,
private readonly channel: RTCPeerConnection) {
channel.addEventListener('message', (e) => this.handleMessage(e));
}
@@ -18,9 +19,10 @@
const fbBuffer = new flatbuffers.ByteBuffer(new Uint8Array(e.data));
const messageHeader =
WebProxy.MessageHeader.getRootAsMessageHeader(fbBuffer);
+ const time = messageHeader.monotonicSentTime().toFloat64() * 1e-9;
// Short circuit if only one packet
if (messageHeader.packetCount() === 1) {
- this.handlerFunc(messageHeader.dataArray());
+ this.handlerFunc(messageHeader.dataArray(), time);
return;
}
@@ -37,7 +39,7 @@
this.receivedMessageLength += messageHeader.dataLength();
if (messageHeader.packetIndex() === messageHeader.packetCount() - 1) {
- this.handlerFunc(this.dataBuffer);
+ this.handlerFunc(this.dataBuffer, time);
}
}
}
@@ -54,7 +56,8 @@
// A set of functions that accept the config to handle.
private readonly configHandlers = new Set<(config: Configuration) => void>();
- private readonly handlerFuncs = new Map<string, (data: Uint8Array) => void>();
+ private readonly handlerFuncs =
+ new Map<string, (data: Uint8Array, sentTime: number) => void>();
private readonly handlers = new Set<Handler>();
constructor() {