initial commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user