public async void Send(int timeProbeIndex) { var data = new DataTimeState { Sequence = timeProbeIndex }; SetTimeStamp(ref data); await Send(data, OP_CODE_TIME_REQUEST); }
public void SetTimeStamp(ref DataTimeState target) { if (IsLead) { target.TimeLead = DateTime.UtcNow.ToBinary(); } else { target.TimeFollow = DateTime.UtcNow.ToBinary(); } }
private async Task Send(DataTimeState state, long opCode) { var handle = GCHandle.Alloc(_bufferTimeOut, GCHandleType.Pinned); Marshal.StructureToPtr(state, handle.AddrOfPinnedObject(), false); handle.Free(); _time = DateTime.UtcNow; await _netSocket.SendMatchStateAsync( _netMatch.Id, opCode, Convert.ToBase64String(_bufferTimeOut)); }