Approximates a time offset to match the UTC time in the server.
This is needed when the client does not have accurate time, e.g., it cannot rely on NTP, or an RTC with battery.
The approach that follows is very similar to NTP: assume symmetric propagation times in a round trip, and pick the shortest round trip time within a window of requests. If needed, we also low pass filter the resulting time offsets.
Every client request to a CA piggybacks time information. And after a few requests, the time error after applying the offset is <100ms in most cases.
- Source:
Methods
endRequest(response)
- Source:
Ends a roundtrip with a response.
Parameters:
Name | Type | Description |
---|---|---|
response |
msgType | A response. |
offset() → {number}
- Source:
Returns the time offset.
Add this value to the current time to match server time, e.g.:
const now = new Date().getTime();
now = now + timeAdjuster.getOffset();
Returns:
A time offset
- Type
- number
startRequest(request)
- Source:
Starts a request to be timed.
Parameters:
Name | Type | Description |
---|---|---|
request |
msgType | A request to be timed. |
TimeAdjuster(options)
- Source:
Constructor.
See types.js
for a description of type timeAdjusterOptionsType
.
Parameters:
Name | Type | Description |
---|---|---|
options |
timeAdjusterOptionsType | Configuration options. |