44 lines
761 B
C#
44 lines
761 B
C#
using System;
|
|
using System.Threading;
|
|
|
|
namespace Server.Connectings;
|
|
|
|
public class LastPing
|
|
{
|
|
private Timer timer;
|
|
|
|
public Clients client;
|
|
|
|
private DateTime lastPing;
|
|
|
|
public LastPing(Clients client)
|
|
{
|
|
this.client = client;
|
|
lastPing = DateTime.Now;
|
|
timer = new Timer(Check, null, 1, 2000);
|
|
}
|
|
|
|
private double DiffSeconds(DateTime startTime, DateTime endTime)
|
|
{
|
|
return Math.Abs(new TimeSpan(endTime.Ticks - startTime.Ticks).TotalSeconds);
|
|
}
|
|
|
|
private void Check(object obj)
|
|
{
|
|
if (DiffSeconds(lastPing, DateTime.Now) > (double)Program.form.settings.second)
|
|
{
|
|
client.Disconnect();
|
|
}
|
|
}
|
|
|
|
public void Disconnect()
|
|
{
|
|
timer?.Dispose();
|
|
}
|
|
|
|
public void Last()
|
|
{
|
|
lastPing = DateTime.Now;
|
|
}
|
|
}
|