This commit is contained in:
CortexCore
2024-06-17 16:29:39 +08:00
parent 65f9e40105
commit d22cef8990
2 changed files with 27 additions and 25 deletions

View File

@@ -16,12 +16,14 @@ namespace BITKit.Net.Kcp
[SerializeField] private ushort m_port;
[SerializeField] private bool connectOnStart;
[SerializeField] private bool autoReconnect;
[Header(Constant.Header.Debug)]
[SerializeField]
[ReadOnly]private Vector2 traffic;
[SerializeField]
[ReadOnly]private string upTraffic;
[SerializeField]
[ReadOnly]private string downTraffic;
[SerializeField, ReadOnly] private bool isConnected;
#if UNITY_EDITOR
[SerializeField] private Optional<string> allowDebugHost;
@@ -33,6 +35,8 @@ namespace BITKit.Net.Kcp
private KcpNetClient client;
private INetClient _netClientImplementation=>client;
private INetProvider _netProviderImplementation=>client;
private readonly IntervalUpdate _reconnectInterval = new(1);
public event Action OnStartConnect
{
@@ -171,30 +175,10 @@ namespace BITKit.Net.Kcp
{
_netProviderImplementation.HandShake();
}
private async void Reconnect()
{
if (autoReconnect is false) return;
try
{
await Task.Delay(1000, destroyCancellationToken);
if (client.IsConnected is false)
{
await client.Connect(m_host, m_port);
}
}
catch (OperationCanceledException)
{
}
}
private void Awake()
{
Singleton = this;
client = new KcpNetClient();
client.OnConnectedFailed += Reconnect;
}
private void Start()
{
@@ -224,12 +208,19 @@ namespace BITKit.Net.Kcp
private void OnTick(float obj)
{
if (client.IsConnected is false && autoReconnect)
{
if (_reconnectInterval.AllowUpdate)
client.Connect(m_host, m_port).Forget();
}
timer.Update(obj);
rate = timer;
Tick();
traffic = client.Traffic;
upTraffic = NetUtils.GetFileSize((long)traffic.x);
downTraffic = NetUtils.GetFileSize((long)traffic.y);
isConnected = IsConnected;
}
[BIT]
private void EditorConnect()