private void OnFrame(ServerClient channel, MessageFrame frame) { if (frame.SequenceNumber == 65535) { _batchCounter ++; Console.WriteLine(DateTime.UtcNow.ToString("HH:mm:ss.fff") + " " + (_batchCounter*65535) + " messages."); } if (frame.Payload != null) { if (frame.Payload.ToString()[0] == 'm') { Console.WriteLine(DateTime.UtcNow.ToString("HH:mm:ss.fff") + " done"); var buffer = Encoding.ASCII.GetBytes("completed"); channel.Send(new MessageFrame(buffer)); } } else if (frame.PayloadBuffer.Array[1] == 'm') { Console.WriteLine(DateTime.UtcNow.ToString("HH:mm:ss.fff") + " done"); var buffer = Encoding.ASCII.GetBytes("completed"); channel.Send(new MessageFrame(buffer)); } }
private void OnTimeSync(ServerClient channel, MessageFrame frame) { if (_timeSyncCompleted) { OnFrame(channel, frame); return; } var data = Encoding.ASCII.GetString(frame.PayloadBuffer.Array, frame.PayloadBuffer.Offset, frame.PayloadBuffer.Count); var parts = data.Split(';'); var time = DateTime.Parse(parts[0]); var buffer = Encoding.ASCII.GetBytes((int)DateTime.UtcNow.Subtract(time).TotalMilliseconds + ";" + DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.ffff")); channel.Send(new MessageFrame(buffer)); //completed time sync if (parts.Length == 2) { Console.WriteLine("Time synchronization completed"); _timeSyncCompleted = true; } }