void SetTimer(DateTime time)
{
uint remote = GetNextInterval(this.remoteInterval, time, this.lastSendTime);
uint local = GetNextInterval(this.localInterval, time, this.lastReceiveTime);
uint interval = Math.Min(remote, local);
#if NETSTANDARD
this.heartBeatTimer.Change(interval > int.MaxValue ? int.MaxValue : (int)interval, Timeout.Infinite);
#elif !PCL
this.heartBeatTimer.Change(interval, uint.MaxValue);
#endif
}